CONVOLUTIONAL NEURAL NETWORKS FOR DETECTION OF MALFORMATIONS OF CORTICAL DEVELOPMENT

Import packages and functions

In [1]:
import matplotlib as mpl
%matplotlib inline
from PIL import Image
import numpy as np
import pandas as pd
import os
from skimage.color import gray2rgb
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from mpl_toolkits.axes_grid1 import ImageGrid
from sklearn.utils import shuffle
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import activations
from tensorflow.keras.preprocessing import image
from tensorflow.keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Input, concatenate, Dense, Dropout, Activation, Flatten, GaussianNoise, BatchNormalization, GlobalAveragePooling2D, Conv2D, MaxPooling2D
from tensorflow.keras.optimizers import Adam, RMSprop
from tensorflow.keras.applications.inception_v3 import InceptionV3
from tensorflow.keras.applications.resnet50 import ResNet50
from tensorflow.keras.applications.inception_resnet_v2 import InceptionResNetV2
from tensorflow.keras.models import Model
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.metrics import roc_auc_score
from tensorflow.keras.models import model_from_json
from tensorflow.keras import backend as K
from tensorflow.keras.utils import to_categorical
from tf_keras_vis.gradcam import Gradcam
from tf_keras_vis.saliency import Saliency
from tf_keras_vis.utils import normalize
from sklearn.metrics import classification_report
In [2]:
# Define image size
mpl.rcParams['figure.figsize'] = (20,24)

FIRST PART: DATA INGESTION AND DATA AUGMENTATION

Data description

We have trained our CNNs with a training set of:

-369 normal MRI images from 19 control patients

-401 MRI images of diffuse malformations of cortical development from 27 patients

-389 MRI images of periventricular nodular heterotopia (PVNH) from 21 patients

And a validation set of:

-159 normal MRI images from 8 control patients

-147 MRI images of diffuse malformations of cortical development from 10 patients

-175 MRI images of periventricular nodular heterotopia (PVNH) from 4 patients

Import original images

In [3]:
# Unzip files
!unzip ~/data/Controltrain.zip -d ~/data/
!unzip ~/data/Controlval.zip -d ~/data/
!unzip ~/data/CMtrain.zip -d ~/data/
!unzip ~/data/CMval.zip -d ~/data/
!unzip ~/data/PVNHtrain.zip -d ~/data/
!unzip ~/data/PVNHval.zip -d ~/data/

# Remove the zipped files
!rm ~/data/Controltrain.zip  
!rm ~/data/Controlval.zip   
!rm ~/data/CMtrain.zip  
!rm ~/data/CMval.zip
!rm ~/data/PVNHtrain.zip  
!rm ~/data/PVNHval.zip
Archive:  /home/ubuntu/data/Controltrain.zip
  inflating: /home/ubuntu/data/Controltrain/26.1_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.10_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.11_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.12_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.13_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.14_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.15_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.16_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.17_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.2_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.3_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.4_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.5_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.6_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.7_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.8_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/26.9_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.1_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.10_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.11_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.12_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.13_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.14_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.15_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.16_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.17_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.18_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.2_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.3_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.4_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.5_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.6_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.7_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.8_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/27.9_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.1_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.10_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.11_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.2_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.3_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.4_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.5_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.6_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.7_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.8_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/28.9_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.1_COR SPACE FLAIR RECON_58.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.10_COR SPACE FLAIR RECON_95.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.11_COR SPACE FLAIR RECON_102.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.12_COR SPACE FLAIR RECON_115.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.13_AX MPRAGE RECON_80.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.14_AX MPRAGE RECON_85.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.15_AX MPRAGE RECON_92.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.16_AX MPRAGE RECON_99.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.17_AX MPRAGE RECON_109.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.18_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.19_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.2_COR SPACE FLAIR RECON_61.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.20_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.21_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.22_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.23_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.24_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.25_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.26_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.27_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.28_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.29_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.3_COR SPACE FLAIR RECON_64.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.30_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.31_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.32_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.33_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.34_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.35_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.36_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.37_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.38_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.4_COR SPACE FLAIR RECON_67.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.5_COR SPACE FLAIR RECON_71.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.6_COR SPACE FLAIR RECON_76.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.7_COR SPACE FLAIR RECON_80.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.8_COR SPACE FLAIR RECON_85.jpg  
  inflating: /home/ubuntu/data/Controltrain/29.9_COR SPACE FLAIR RECON_90.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.1_COR FLAIR SPACE RECON_53.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.10_AX FLAIR SPACE RECON_74.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.11_AX FLAIR SPACE RECON_79.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.12_AX FLAIR SPACE RECON_83.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.13_AX FLAIR SPACE RECON_86.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.14_AX FLAIR SPACE RECON_90.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.15_AX FLAIR SPACE RECON_93.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.16_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.17_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.18_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.2_COR FLAIR SPACE RECON_63.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.3_COR FLAIR SPACE RECON_70.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.4_COR FLAIR SPACE RECON_75.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.5_COR FLAIR SPACE RECON_84.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.6_COR FLAIR SPACE RECON_92.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.7_COR FLAIR SPACE RECON_99.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.8_COR FLAIR SPACE RECON_104.jpg  
  inflating: /home/ubuntu/data/Controltrain/30.9_AX FLAIR SPACE RECON_70.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.1_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.10_COR MPRAGE RECON_77.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.11_COR MPRAGE RECON_81.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.12_COR MPRAGE RECON_87.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.13_AX MPRAGE RECON_92.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.14_AX MPRAGE RECON_96.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.15_AX MPRAGE RECON_102.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.16_AX MPRAGE RECON_107.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.17_AX MPRAGE RECON_116.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.18_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.19_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.2_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.20_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.21_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.22_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.23_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.24_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.25_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.26_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.27_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.28_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.29_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.3_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.30_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.31_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.32_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.33_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.34_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.4_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.5_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.6_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.7_COR MPRAGE RECON_58.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.8_COR MPRAGE RECON_66.jpg  
  inflating: /home/ubuntu/data/Controltrain/31.9_COR MPRAGE RECON_72.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.1_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.10_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.11_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.12_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.13_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.14_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.15_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.16_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.17_SAGITTAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.18_SAGITTAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.19_SAGITTAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.2_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.3_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.4_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.5_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.6_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.7_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.8_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/32.9_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.1_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.10_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.11_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.12_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.13_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.14_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.15_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.16_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.17_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.18_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.19_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.2_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.20_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.21_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.22_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.23_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.24_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.25_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.26_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.27_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.28_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.29_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.3_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.30_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.31_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.32_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.33_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.34_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.35_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.36_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.37_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.38_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.39_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.4_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.40_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.41_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.42_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.5_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.6_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.7_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.8_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/33.9_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.1_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.10_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.11_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.12_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.13_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.14_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.15_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.16_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.17_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.18_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.19_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.2_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.20_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.21_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.22_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.23_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.24_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.25_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.26_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.3_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.4_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.5_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.6_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.7_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.8_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/34.9_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.1_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.10_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.11_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.2_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.3_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.4_AX MPR_84.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.5_AX MPR_91.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.6_AX MPR_96.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.7_AX MPR_104.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.8_AX MPR_113.jpg  
  inflating: /home/ubuntu/data/Controltrain/35.9_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.1_AX MPR RECON_128.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.10_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.11_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.12_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.2_AX MPR RECON_135.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.3_AX MPR RECON_144.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.4_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.5_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.6_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.7_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.8_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/36.9_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.1_CORONAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.10_AXIAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.11_AXIAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.12_AXIAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.13_AXIAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.14_COR MPR RECON_67.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.15_COR MPR RECON_72.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.16_COR MPR RECON_76.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.17_COR MPR RECON_84.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.18_COR MPR RECON_90.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.19_COR MPR RECON_97.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.2_CORONAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.20_COR MPR RECON_103.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.21_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.22_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.23_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.24_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.25_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.26_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.27_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.28_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.29_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.3_CORONAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.30_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.31_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.32_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.33_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.34_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.35_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.4_CORONAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.5_CORONAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.6_CORONAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.7_CORONAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.8_CORONAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/37.9_AXIAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.1_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.10_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.11_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.12_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.13_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.14_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.15_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.16_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.17_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.2_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.3_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.4_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.5_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.6_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.7_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.8_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/38.9_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controltrain/39.1_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/39.2_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/39.3_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/39.4_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/39.5_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/39.6_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/39.7_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.1_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.10_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.11_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.12_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.13_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.2_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.3_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.4_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.5_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.6_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.7_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.8_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/40.9_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.1_SAGITTAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.10_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.11_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.12_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.2_SAGITTAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.3_SAGITTAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.4_SAGITTAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.5_SAGITTAL_T1.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.6_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.7_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.8_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/41.9_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.1_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.10_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.11_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.12_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.13_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.14_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.15_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.16_CORONAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.17_CORONAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.2_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.3_AXIAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.4_AXIAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.5_AXIAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.6_AXIAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.7_AXIAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.8_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/42.9_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.1_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.11_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.12_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.13_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.14_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.15_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.16_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.17_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.18_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.2_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/43.3_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.1_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.10_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.11_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.2_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.3_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.4_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.5_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.6_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.7_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.8_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controltrain/44.9_CORONAL_T2.jpg  
Archive:  /home/ubuntu/data/Controlval.zip
  inflating: /home/ubuntu/data/Controlval/18.1_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.10_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.11_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.12_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.13_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/18.14_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/18.15_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/18.16_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/18.17_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/18.18_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/18.19_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/18.2_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.20_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.21_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.22_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.23_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.24_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.25_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.26_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.27_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.28_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.29_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.3_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.30_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.31_COR T2 RECON_62.jpg  
  inflating: /home/ubuntu/data/Controlval/18.32_COR T2 RECON_68.jpg  
  inflating: /home/ubuntu/data/Controlval/18.33_COR T2 RECON_73.jpg  
  inflating: /home/ubuntu/data/Controlval/18.34_COR T2 RECON_79.jpg  
  inflating: /home/ubuntu/data/Controlval/18.35_COR T2 RECON_84.jpg  
  inflating: /home/ubuntu/data/Controlval/18.36_COR T2 RECON_92.jpg  
  inflating: /home/ubuntu/data/Controlval/18.37_COR T2 RECON_97.jpg  
  inflating: /home/ubuntu/data/Controlval/18.38_COR T2 RECON_105.jpg  
  inflating: /home/ubuntu/data/Controlval/18.39_COR T2 RECON_110.jpg  
  inflating: /home/ubuntu/data/Controlval/18.4_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.40_COR T2 RECON_116.jpg  
  inflating: /home/ubuntu/data/Controlval/18.5_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.6_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.7_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.8_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/18.9_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/19.1_AX FLAIR_85.jpg  
  inflating: /home/ubuntu/data/Controlval/19.10_AX FLAIR_142.jpg  
  inflating: /home/ubuntu/data/Controlval/19.15_AX RECON_80.jpg  
  inflating: /home/ubuntu/data/Controlval/19.16_AX RECON_88.jpg  
  inflating: /home/ubuntu/data/Controlval/19.17_AX RECON_93.jpg  
  inflating: /home/ubuntu/data/Controlval/19.18_AX RECON_102.jpg  
  inflating: /home/ubuntu/data/Controlval/19.19_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/19.2_AX FLAIR_91.jpg  
  inflating: /home/ubuntu/data/Controlval/19.20_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/19.21_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/19.3_AX FLAIR_97.jpg  
  inflating: /home/ubuntu/data/Controlval/19.4_AX FLAIR_104.jpg  
  inflating: /home/ubuntu/data/Controlval/19.5_AX FLAIR_110.jpg  
  inflating: /home/ubuntu/data/Controlval/19.6_AX FLAIR_119.jpg  
  inflating: /home/ubuntu/data/Controlval/19.7_AX FLAIR_124.jpg  
  inflating: /home/ubuntu/data/Controlval/19.8_AX FLAIR_129.jpg  
  inflating: /home/ubuntu/data/Controlval/19.9_AX FLAIR_135.jpg  
  inflating: /home/ubuntu/data/Controlval/20.1_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/20.10_AX T2 SPACE RECON_119.jpg  
  inflating: /home/ubuntu/data/Controlval/20.11_AX T2 SPACE RECON_124.jpg  
  inflating: /home/ubuntu/data/Controlval/20.12_AX T2 SPACE RECON_129.jpg  
  inflating: /home/ubuntu/data/Controlval/20.2_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/20.3_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/20.4_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/20.5_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/20.6_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/20.7_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/20.8_AX T2 SPACE RECON_108.jpg  
  inflating: /home/ubuntu/data/Controlval/20.9_AX T2 SPACE RECON_114.jpg  
  inflating: /home/ubuntu/data/Controlval/21.1_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controlval/21.10_AXIAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controlval/21.11_AXIAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controlval/21.12_AXIAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controlval/21.2_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controlval/21.3_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controlval/21.4_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/21.5_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/21.6_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/21.7_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/21.8_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/21.9_AXIAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/22.1_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controlval/22.10_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.11_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.12_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.13_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.14_AX MPRAGE_100.jpg  
  inflating: /home/ubuntu/data/Controlval/22.15_AX MPRAGE_104.jpg  
  inflating: /home/ubuntu/data/Controlval/22.16_AX MPRAGE_110.jpg  
  inflating: /home/ubuntu/data/Controlval/22.17_AX MPRAGE_115.jpg  
  inflating: /home/ubuntu/data/Controlval/22.18_AX MPRAGE_120.jpg  
  inflating: /home/ubuntu/data/Controlval/22.19_AX MPRAGE_127.jpg  
  inflating: /home/ubuntu/data/Controlval/22.2_SAGITTAL_MPRAGE.jpg  
  inflating: /home/ubuntu/data/Controlval/22.20_AX MPRAGE_135.jpg  
  inflating: /home/ubuntu/data/Controlval/22.21_COR MPRAGE_40.jpg  
  inflating: /home/ubuntu/data/Controlval/22.22_COR MPRAGE_46.jpg  
  inflating: /home/ubuntu/data/Controlval/22.23_COR MPRAGE_52.jpg  
  inflating: /home/ubuntu/data/Controlval/22.24_COR MPRAGE_58.jpg  
  inflating: /home/ubuntu/data/Controlval/22.25_COR MPRAGE_72.jpg  
  inflating: /home/ubuntu/data/Controlval/22.26_COR MPRAGE_82.jpg  
  inflating: /home/ubuntu/data/Controlval/22.27_COR MPRAGE_89.jpg  
  inflating: /home/ubuntu/data/Controlval/22.28_COR MPRAGE_97.jpg  
  inflating: /home/ubuntu/data/Controlval/22.29_COR MPRAGE_105.jpg  
  inflating: /home/ubuntu/data/Controlval/22.3_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.4_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.5_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.6_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.7_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.8_AXIAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/22.9_SAGITTAL_FLAIR.jpg  
  inflating: /home/ubuntu/data/Controlval/23.1_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controlval/23.10_COR MPRAGE RECON_100.jpg  
  inflating: /home/ubuntu/data/Controlval/23.11_COR MPRAGE RECON_113.jpg  
  inflating: /home/ubuntu/data/Controlval/23.12_COR MPRAGE RECON_118.jpg  
  inflating: /home/ubuntu/data/Controlval/23.13_COR MPRAGE RECON_128.jpg  
  inflating: /home/ubuntu/data/Controlval/23.2_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controlval/23.3_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controlval/23.4_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/23.5_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/23.6_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/23.7_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/23.8_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/23.9_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/24.1_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controlval/24.10_mprage- ax_107.jpg  
  inflating: /home/ubuntu/data/Controlval/24.11_mprage- ax_112.jpg  
  inflating: /home/ubuntu/data/Controlval/24.12_mprage- ax_116.jpg  
  inflating: /home/ubuntu/data/Controlval/24.13_mprage- ax_121.jpg  
  inflating: /home/ubuntu/data/Controlval/24.14_mprage- ax_126.jpg  
  inflating: /home/ubuntu/data/Controlval/24.15_mprage- ax_133.jpg  
  inflating: /home/ubuntu/data/Controlval/24.16_mprage- ax_140.jpg  
  inflating: /home/ubuntu/data/Controlval/24.17_mprage- ax_150.jpg  
  inflating: /home/ubuntu/data/Controlval/24.18_mprage- ax_154.jpg  
  inflating: /home/ubuntu/data/Controlval/24.19_mprage- ax_158.jpg  
  inflating: /home/ubuntu/data/Controlval/24.2_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controlval/24.20_mprage- ax_162.jpg  
  inflating: /home/ubuntu/data/Controlval/24.3_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controlval/24.4_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controlval/24.5_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/24.6_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/24.7_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/24.8_mprage- ax_100.jpg  
  inflating: /home/ubuntu/data/Controlval/24.9_mprage- ax_103.jpg  
  inflating: /home/ubuntu/data/Controlval/25.1_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controlval/25.10_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/25.11_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/25.12_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/25.13_COR MPRAGE RECON_111.jpg  
  inflating: /home/ubuntu/data/Controlval/25.14_COR MPRAGE RECON_120.jpg  
  inflating: /home/ubuntu/data/Controlval/25.15_COR MPRAGE RECON_127.jpg  
  inflating: /home/ubuntu/data/Controlval/25.16_COR MPRAGE RECON_138.jpg  
  inflating: /home/ubuntu/data/Controlval/25.2_AXIAL_TSE.jpg  
  inflating: /home/ubuntu/data/Controlval/25.3_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/25.4_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/25.5_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/25.6_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/25.7_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/25.8_CORONAL_T2.jpg  
  inflating: /home/ubuntu/data/Controlval/25.9_CORONAL_T2.jpg  
Archive:  /home/ubuntu/data/CMtrain.zip
  inflating: /home/ubuntu/data/CMtrain/25.1_AX T2_35.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.10_COR T2_12.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.11_COR T2_13.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.12_COR T2_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.13_COR T2_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.14_COR T2_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.2_AX T2_38.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.3_AX T2_41.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.4_AX T2_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.5_AX T2_47.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.6_AX T2_50.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.7_AX T2 FLAIR_23.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.8_AX T2 FLAIR_25.jpg  
  inflating: /home/ubuntu/data/CMtrain/25.9_AX T2 FLAIR_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.1_AX T2 TSE_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.10_COR T2 TSE (ANGLED)_31.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.11_COR T2 TSE (ANGLED)_33.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.12_COR T2 TSE (ANGLED)_35.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.13_mocoMEMPRAGE FOV 220 RMS_122.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.14_mocoMEMPRAGE FOV 220 RMS_125.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.15_mocoMEMPRAGE FOV 220 RMS_127.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.16_mocoMEMPRAGE FOV 220 RMS_129.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.17_mocoMEMPRAGE FOV 220 RMS_131.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.2_AX T2 TSE_33.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.3_AX T2 TSE_36.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.4_AX T2 TSE_39.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.5_AX T2 TSE_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.6_AX T2 TSE_45.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.7_COR T2 TSE (ANGLED)_25.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.8_COR T2 TSE (ANGLED)_27.jpg  
  inflating: /home/ubuntu/data/CMtrain/26.9_COR T2 TSE (ANGLED)_29.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.1_AX_T2_STEALTH_50.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.10_COR_T2_11.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.11_COR_T2_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.12_COR_T2_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.13_COR_T2_20.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.14_COR_T2_23.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.2_AX_T2_STEALTH_52.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.3_AX_T2_STEALTH_54.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.4_AX_T2_STEALTH_56.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.5_AX_T2_STEALTH_58.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.6_AX_T2_STEALTH_60.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.7_AX_T2 FLAIR_fs_20.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.8_AX_T2 FLAIR_fs_22.jpg  
  inflating: /home/ubuntu/data/CMtrain/27.9_AX_T2 FLAIR_fs_24.jpg  
  inflating: /home/ubuntu/data/CMtrain/28.1_21802987_AX T2-BR_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/28.2_21802987_AX T2-BR_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/28.3_21802987_AX T2-BR_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/28.4_21802987_AX T2-BR_19.jpg  
  inflating: /home/ubuntu/data/CMtrain/28.5_AX T2 FLAIR-BR_15.jpg  
  inflating: /home/ubuntu/data/CMtrain/28.6_AX T2 FLAIR-BR_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/28.7_AX T2 FLAIR-BR_19.jpg  
  inflating: /home/ubuntu/data/CMtrain/28.8_COR T2-BR_26.jpg  
  inflating: /home/ubuntu/data/CMtrain/28.9_COR T2-BR_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.1_AxFSET2_15.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.10_CORFSET2_7.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.11_CORFSET2_8.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.12_CORFSET2_9.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.13_CORFSET2_10.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.14_CORFSET2_11.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.2_AxFSET2_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.3_AxFSET2_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.4_AxFSET2_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.5_AxFSET2_19.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.6_AxFLAIR_15.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.7_AxFLAIR_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.8_AxFLAIR_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/29.9_AxFLAIR_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.1_AXIAL TSE T2_37.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.10_COR T2 HI RES_4.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.11_COR T2 HI RES_7.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.12_COR T2 HI RES_10.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.13_COR T2 HI RES_13.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.14_COR T2 HI RES_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.2_AXIAL TSE T2_39.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.3_AXIAL TSE T2_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.4_AXIAL TSE T2_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.5_AXIAL TSE T2_35.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.6_AXT2FLAIR_33.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.7_AXT2FLAIR_27.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.8_AXT2FLAIR_29.jpg  
  inflating: /home/ubuntu/data/CMtrain/30.9_AXT2FLAIR_31.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.1_1.2.840.113619.2.135.2025.1773586.7665.1123171383.347_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.10_1.2.840.113619.2.135.2025.1773586.7665.1123171383.622_20.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.2_1.2.840.113619.2.135.2025.1773586.7665.1123171383.348_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.3_1.2.840.113619.2.135.2025.1773586.7665.1123171383.349_19.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.4_1.2.840.113619.2.135.2025.1773586.7665.1123171383.350_20.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.5_1.2.840.113619.2.135.2025.1773586.7665.1123171383.429_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.6_1.2.840.113619.2.135.2025.1773586.7665.1123171383.526_6.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.7_1.2.840.113619.2.135.2025.1773586.7665.1123171383.619_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.8_1.2.840.113619.2.135.2025.1773586.7665.1123171383.620_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/31.9_1.2.840.113619.2.135.2025.1773586.7665.1123171383.621_19.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.1_T2 TSE Axial_41.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.10_AX MPR RECONS_85.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.11_AX MPR RECONS_87.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.12_AX MPR RECONS_89.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.13_AX MPR RECONS_91.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.14_COR MPR RECONS_52.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.15_COR MPR RECONS_55.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.16_COR MPR RECONS_58.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.17_COR MPR RECONS_61.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.18_COR MPR RECONS_64.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.19_COR MPR RECONS_67.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.2_T2 TSE Axial_43.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.20_COR MPR RECONS_70.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.21_COR MPR RECONS_73.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.22_COR MPR RECONS_76.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.3_T2 TSE Axial_45.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.4_T2 TSE Axial_47.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.5_T2 TSE Axial_49.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.6_T2 TSE Axial_51.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.7_AXT2FLAIR_22.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.8_AXT2FLAIR_24.jpg  
  inflating: /home/ubuntu/data/CMtrain/32.9_AXT2FLAIR_26.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.1_AX TSE T2 (TRIO PARAMETERS)_40.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.10_COR FSE T2 (ANGLED)_36.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.11_COR FSE T2 (ANGLED)_38.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.12_COR FSE T2 (ANGLED)_40.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.13_COR FSE T2 (ANGLED)_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.14_COR FSE T2 (ANGLED)_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.2_AX TSE T2 (TRIO PARAMETERS)_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.3_AX TSE T2 (TRIO PARAMETERS)_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.4_AX TSE T2 (TRIO PARAMETERS)_46.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.5_AX TSE T2 (TRIO PARAMETERS)_48.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.6_AX TSE T2 (TRIO PARAMETERS)_50.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.7_COR FSE T2 (ANGLED)_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.8_COR FSE T2 (ANGLED)_32.jpg  
  inflating: /home/ubuntu/data/CMtrain/33.9_COR FSE T2 (ANGLED)_34.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.1_t2_tse_cor_10.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.10_t2_tse_tra_26.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.11_t2_tse_tra_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.12_t2_tse_tra_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.13_t2_tse_tra_32.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.14_t2_tse_tra_34.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.2_t2_tse_cor_12.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.3_t2_tse_cor_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.4_t2_tse_cor_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.5_t2_tse_cor_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.6_t2_tse_cor_20.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.7_t2_tse_tra_20.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.8_t2_tse_tra_22.jpg  
  inflating: /home/ubuntu/data/CMtrain/34.9_t2_tse_tra_24.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.1_AX T2_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.10_AX MPR_82.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.11_AX MPR_85.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.12_AX MPR_88.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.2_AX T2_33.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.3_AX T2_35.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.4_AX T2_37.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.5_AX T2 FLAIR_19.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.6_AX T2 FLAIR_21.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.7_AX T2 FLAIR_23.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.8_AX MPR_77.jpg  
  inflating: /home/ubuntu/data/CMtrain/35.9_AX MPR_79.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.1_AX TSE T2_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.10_AX T2 FLAIR_32.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.11_AX T2 FLAIR_34.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.2_AX TSE T2_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.3_AX TSE T2_46.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.4_AX TSE T2_48.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.5_AX TSE T2_50.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.6_AX TSE T2_52.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.7_AX TSE T2_54.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.8_AX T2 FLAIR_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/36.9_AX T2 FLAIR_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.1_AX T2 SPACE RECON_88.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.10_COR T2_45.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.11_DTI 35 DIR B1000(EXP MAPS)_TRACEW_51.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.12_WIPmocoMEMPRAGE FOV 192 RMS_47.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.13_WIPmocoMEMPRAGE FOV 192 RMS_87.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.2_AX T2_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.3_AX T2_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.4_AX T2_46.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.5_AX T2_47.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.6_COR T2 SPACE RECON_57.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.7_COR T2_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.8_COR T2_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/37.9_COR T2_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.1_AX TSE T2 (2_0) STEALTH PLANNING_43_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.10_COR FSE T2 (ANGLED)_40.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.11_COR FSE T2 (ANGLED)_43.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.12_COR FSE T2 (ANGLED)_46.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.2_AX TSE T2 (2_0) STEALTH PLANNING_45_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.3_AX TSE T2 (2_0) STEALTH PLANNING_47_46.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.4_AX TSE T2 (2_0) STEALTH PLANNING_49_48.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.5_AX TSE T2 (2_0) STEALTH PLANNING_51_50.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.6_AX TSE T2 (2_0) STEALTH PLANNING_53_52.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.7_AX TSE T2 (2_0) STEALTH PLANNING_55_54.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.8_AX TSE T2 (2_0) STEALTH PLANNING_57_56.jpg  
  inflating: /home/ubuntu/data/CMtrain/38.9_COR FSE T2 (ANGLED)_37.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.1_AX TSE T2_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.10_AX T2 FLAIR_25.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.11_AX T2 FLAIR_27.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.12_AX T2 FLAIR_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.13_COR FSE T2 (ANGLED)_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.14_COR FSE T2 (ANGLED)_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.15_COR FSE T2 (ANGLED)_32.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.16_COR FSE T2 (ANGLED)_34.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.17_COR FSE T2 (ANGLED)_36.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.18_COR FSE T2 (ANGLED)_38.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.19_COR FSE T2 (ANGLED)_40.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.2_AX TSE T2_32.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.20_AX T1 RECON_82.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.21_AX T1 RECON_84.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.22_AX T1 RECON_86.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.23_AX T1 RECON_88.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.24_AX T1 RECON_90.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.25_AX T1 RECON_92.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.26_AX T1 RECON_94.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.27_AX T1 RECON_96.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.3_AX TSE T2_34.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.4_AX TSE T2_36.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.5_AX TSE T2_38.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.6_AX TSE T2_40.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.7_AX TSE T2_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.8_AX TSE T2_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/39.9_AX TSE T2_46.jpg  
  inflating: /home/ubuntu/data/CMtrain/40.1_REPEAT AX T2 BLADE-BR_20.jpg  
  inflating: /home/ubuntu/data/CMtrain/40.2_REPEAT AX T2 BLADE-BR_22.jpg  
  inflating: /home/ubuntu/data/CMtrain/40.3_REPEAT AX T2 BLADE-BR_24.jpg  
  inflating: /home/ubuntu/data/CMtrain/40.4_REPEAT AX T2 BLADE-BR_26.jpg  
  inflating: /home/ubuntu/data/CMtrain/40.5_REPEAT AX T2 BLADE-BR_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/40.6_COR T2_36.jpg  
  inflating: /home/ubuntu/data/CMtrain/40.7_COR T2_37.jpg  
  inflating: /home/ubuntu/data/CMtrain/40.8_COR T2_38.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.1_AX TSE T2_36.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.10_COR FSE T2 (ANGLED) REPEAT_36.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.11_COR FSE T2 (ANGLED) REPEAT_38.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.12_COR FSE T2 (ANGLED) REPEAT_40.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.13_COR FSE T2 (ANGLED) REPEAT_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.14_COR FSE T2 (ANGLED) REPEAT_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.15_COR FSE T2 (ANGLED) REPEAT_46.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.16_COR FSE T2 (ANGLED) REPEAT_48.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.2_AX TSE T2_38.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.3_AX TSE T2_40.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.4_AX TSE T2_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.5_AX TSE T2_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.6_AX TSE T2_46.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.7_AX T2 FLAIR_23.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.8_AX T2 FLAIR_25.jpg  
  inflating: /home/ubuntu/data/CMtrain/41.9_AX T2 FLAIR_27.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.1_AX TSE T2_39.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.10_AX T1 RECON_144.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.2_AX TSE T2_41.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.3_AX TSE T2_43.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.4_COR FSE T2_37.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.5_COR FSE T2_39.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.6_AX T1 RECON_133.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.7_AX T1 RECON_136.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.8_AX T1 RECON_139.jpg  
  inflating: /home/ubuntu/data/CMtrain/42.9_AX T1 RECON_142.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.1_AX T2_39.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.10_COR T2_52.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.2_AX T2_41.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.3_AX T2_43.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.4_AX T2_45.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.5_AX T2 FLAIR_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.6_AX T2 FLAIR_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.7_AX T2 FLAIR_32.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.8_COR T2_48.jpg  
  inflating: /home/ubuntu/data/CMtrain/43.9_COR T2_50.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.1_1.2.840.113619.2.176.2025.1773586.10296.1135114914.893_13.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.10_1.2.840.113619.2.176.2025.1773586.10296.1135114915.84_22.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.11_1.2.840.113619.2.176.2025.1773586.10296.1135114915.85_24.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.12_1.2.840.113619.2.176.2025.1773586.10296.1135114915.86_26.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.2_1.2.840.113619.2.176.2025.1773586.10296.1135114914.894_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.3_1.2.840.113619.2.176.2025.1773586.10296.1135114914.895_15.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.4_1.2.840.113619.2.176.2025.1773586.10296.1135114914.896_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.5_1.2.840.113619.2.176.2025.1773586.10296.1135114914.976_13.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.6_1.2.840.113619.2.176.2025.1773586.10296.1135114914.977_15.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.7_1.2.840.113619.2.176.2025.1773586.10296.1135114914.978_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.8_1.2.840.113619.2.176.2025.1773586.10296.1135114914.988_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/44.9_1.2.840.113619.2.176.2025.1773586.10296.1135114914.990_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.1_T2 TSE Axial_27.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.10_T2 TSE COR_36.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.11_T2 TSE COR_38.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.12_T2 TSE COR_40.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.13_T2 TSE COR_42.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.14_T2 TSE COR_44.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.15_T2 TSE COR_46.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.16_AX FLAIR SPACE RECON_60.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.17_AX FLAIR SPACE RECON_62.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.18_AX FLAIR SPACE RECON_64.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.19_AX FLAIR SPACE RECON_66.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.2_T2 TSE Axial_29.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.20_AX FLAIR SPACE RECON_68.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.21_AX FLAIR SPACE RECON_70.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.22_AX FLAIR SPACE RECON_102.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.23_AX FLAIR SPACE RECON_104.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.24_AX FLAIR SPACE RECON_106.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.25_AX FLAIR SPACE RECON_108.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.26_AX FLAIR SPACE RECON_110.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.3_T2 TSE Axial_31.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.4_T2 TSE Axial_33.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.5_T2 TSE Axial_35.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.6_AXT2FLAIR_12.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.7_AXT2FLAIR_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.8_AXT2FLAIR_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/45.9_AXT2FLAIR_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.1_T2W_GRASE CLEAR_5.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.10_T2W_FLAIR AXIAL HR____3_2.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.11_T2W_FLAIR AXIAL HR____4_3.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.12_T2W_FLAIR AXIAL HR____5_4.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.13_T2W_FLAIR AXIAL HR____6_5.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.14_T2W_FLAIR AXIAL HR____14_13.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.15_T2W_FLAIR AXIAL HR____15_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.16_T2W_FLAIR AXIAL HR____16_15.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.17_T2W_DRIVE_4.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.18_T2W_DRIVE_6.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.19_T2W_DRIVE_8.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.2_T2W_GRASE CLEAR_6.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.20_T2W_DRIVE_10.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.21_T2W_DRIVE_12.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.22_T2W_DRIVE_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.23_T2W_DRIVE_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.3_T2W_GRASE CLEAR_7.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.4_T2W_GRASE CLEAR_11.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.5_T2W_GRASE CLEAR_12.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.6_T2W_GRASE CLEAR_13.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.7_T2W_GRASE CLEAR_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.8_T2W_GRASE CLEAR_15.jpg  
  inflating: /home/ubuntu/data/CMtrain/46.9_T2W_GRASE CLEAR_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.1_AX T2 FS_4.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.10_COR OBL  T2 FS 320x320_3.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.11_COR OBL  T2 FS 320x320_5.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.12_COR OBL  T2 FS 320x320_7.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.13_COR OBL  T2 FS 320x320_9.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.14_COR OBL  T2 FS 320x320_11.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.15_COR OBL  T2 FS 320x320_13.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.16_COR OBL  T2 FS 320x320_15.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.17_COR OBL  T2 FS 320x320_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.18_COR OBL  T2 FS 320x320_19.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.2_AX T2 FS_5.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.3_AX T2 FS_6.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.4_AX T2 FS_7.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.5_AX T2 FS_8.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.6_AX T2 FS_9.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.7_AX T2 FS_10.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.8_AX T2 FS_11.jpg  
  inflating: /home/ubuntu/data/CMtrain/47.9_COR OBL  T2 FS 320x320_1.jpg  
  inflating: /home/ubuntu/data/CMtrain/48.1_AX T2 FRFSE_11.jpg  
  inflating: /home/ubuntu/data/CMtrain/48.2_AX T2 FRFSE_12.jpg  
  inflating: /home/ubuntu/data/CMtrain/48.3_AX T2 FRFSE_13.jpg  
  inflating: /home/ubuntu/data/CMtrain/48.4_AX T2 FRFSE_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/48.5_AX T2 FRFSE_15.jpg  
  inflating: /home/ubuntu/data/CMtrain/48.6_AX T2 FRFSE_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/48.7_AX T2 FRFSE_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/48.8_AX T2 FRFSE_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.1_AX TSE T2 (TRIO PARAMETERS)_33.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.10_AX TSE T2 (TRIO PARAMETERS)_51.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.11_AX TSE T2 (TRIO PARAMETERS)_53.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.12_AX TSE T2 (TRIO PARAMETERS)_55.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.13_AX TSE T2 (TRIO PARAMETERS)_57.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.14_AX T2 FLAIR_22.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.15_AX T2 FLAIR_24.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.16_AX T2 FLAIR_26.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.17_AX T2 FLAIR_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.18_AX T2 FLAIR_30.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.19_AX T2 FLAIR_32.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.2_AX TSE T2 (TRIO PARAMETERS)_35.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.20_AX T2 FLAIR_34.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.21_COR FSE T2_35.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.22_COR FSE T2_37.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.23_COR FSE T2_39.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.24_COR FSE T2_41.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.25_COR FSE T2_43.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.26_COR FSE T2_45.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.27_COR FSE T2_47.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.28_COR FSE T2_49.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.3_AX TSE T2 (TRIO PARAMETERS)_37.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.4_AX TSE T2 (TRIO PARAMETERS)_39.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.5_AX TSE T2 (TRIO PARAMETERS)_41.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.6_AX TSE T2 (TRIO PARAMETERS)_43.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.7_AX TSE T2 (TRIO PARAMETERS)_45.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.8_AX TSE T2 (TRIO PARAMETERS)_47.jpg  
  inflating: /home/ubuntu/data/CMtrain/49.9_AX TSE T2 (TRIO PARAMETERS)_49.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.1_T2 AX_17.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.10_T2 COR THIN SEIZURE_10.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.11_T2 COR THIN SEIZURE_12.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.12_T2 COR THIN SEIZURE_14.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.13_T2 COR THIN SEIZURE_16.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.14_T2 COR THIN SEIZURE_18.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.15_T2 COR THIN SEIZURE_20.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.16_T2 COR THIN SEIZURE_22.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.2_T2 AX_19.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.3_T2 AX_21.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.4_T2 AX_23.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.5_T2 AX_25.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.6_T2 AX_27.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.7_T2 COR THIN SEIZURE_4.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.8_T2 COR THIN SEIZURE_6.jpg  
  inflating: /home/ubuntu/data/CMtrain/50.9_T2 COR THIN SEIZURE_8.jpg  
  inflating: /home/ubuntu/data/CMtrain/51.1_AX TSE T2_26.jpg  
  inflating: /home/ubuntu/data/CMtrain/51.2_AX TSE T2_27.jpg  
  inflating: /home/ubuntu/data/CMtrain/51.3_AX TSE T2_28.jpg  
  inflating: /home/ubuntu/data/CMtrain/51.4_AX TSE T2_31.jpg  
  inflating: /home/ubuntu/data/CMtrain/51.5_AX TSE T2_32.jpg  
  inflating: /home/ubuntu/data/CMtrain/51.6_COR TSE T2_22.jpg  
  inflating: /home/ubuntu/data/CMtrain/51.7_COR TSE T2_23.jpg  
  inflating: /home/ubuntu/data/CMtrain/51.8_COR TSE T2_24.jpg  
  inflating: /home/ubuntu/data/CMtrain/51.9_COR TSE T2_32.jpg  
Archive:  /home/ubuntu/data/CMval.zip
  inflating: /home/ubuntu/data/CMval/15.1_AX T2-BR_16.jpg  
  inflating: /home/ubuntu/data/CMval/15.10_COR T2-BR_12.jpg  
  inflating: /home/ubuntu/data/CMval/15.11_COR T2-BR_14.jpg  
  inflating: /home/ubuntu/data/CMval/15.12_COR T1 MPRAGE-BR_32.jpg  
  inflating: /home/ubuntu/data/CMval/15.13_COR T1 MPRAGE-BR_34.jpg  
  inflating: /home/ubuntu/data/CMval/15.14_COR T1 MPRAGE-BR_36.jpg  
  inflating: /home/ubuntu/data/CMval/15.15_COR T1 MPRAGE-BR_38.jpg  
  inflating: /home/ubuntu/data/CMval/15.16_COR T1 MPRAGE-BR_40.jpg  
  inflating: /home/ubuntu/data/CMval/15.17_COR T1 MPRAGE-BR_42.jpg  
  inflating: /home/ubuntu/data/CMval/15.18_COR T1 MPRAGE-BR_44.jpg  
  inflating: /home/ubuntu/data/CMval/15.2_AX T2-BR_18.jpg  
  inflating: /home/ubuntu/data/CMval/15.3_AX T2-BR_20.jpg  
  inflating: /home/ubuntu/data/CMval/15.4_AX T2-BR_22.jpg  
  inflating: /home/ubuntu/data/CMval/15.5_AX T2-BR_24.jpg  
  inflating: /home/ubuntu/data/CMval/15.6_AX T2 FLAIR-BR_23.jpg  
  inflating: /home/ubuntu/data/CMval/15.7_AX T2 FLAIR-BR_25.jpg  
  inflating: /home/ubuntu/data/CMval/15.8_COR T2-BR_8.jpg  
  inflating: /home/ubuntu/data/CMval/15.9_COR T2-BR_10.jpg  
  inflating: /home/ubuntu/data/CMval/16.1_AX TSE T2_41.jpg  
  inflating: /home/ubuntu/data/CMval/16.10_AX T2 FLAIR_24.jpg  
  inflating: /home/ubuntu/data/CMval/16.11_AX T2 FLAIR_26.jpg  
  inflating: /home/ubuntu/data/CMval/16.12_AX T2 FLAIR_28.jpg  
  inflating: /home/ubuntu/data/CMval/16.13_AX T2 FLAIR_30.jpg  
  inflating: /home/ubuntu/data/CMval/16.2_AX TSE T2_43.jpg  
  inflating: /home/ubuntu/data/CMval/16.3_AX TSE T2_45.jpg  
  inflating: /home/ubuntu/data/CMval/16.4_AX TSE T2_47.jpg  
  inflating: /home/ubuntu/data/CMval/16.5_AX TSE T2_50.jpg  
  inflating: /home/ubuntu/data/CMval/16.6_AX TSE T2_52.jpg  
  inflating: /home/ubuntu/data/CMval/16.7_AX TSE T2_54.jpg  
  inflating: /home/ubuntu/data/CMval/16.8_AX TSE T2_56.jpg  
  inflating: /home/ubuntu/data/CMval/16.9_AX T2 FLAIR_22.jpg  
  inflating: /home/ubuntu/data/CMval/17.1_T2 TSE Axial_31.jpg  
  inflating: /home/ubuntu/data/CMval/17.10_T2 TSE COR_45.jpg  
  inflating: /home/ubuntu/data/CMval/17.11_T2 TSE COR_47.jpg  
  inflating: /home/ubuntu/data/CMval/17.2_T2 TSE Axial_33.jpg  
  inflating: /home/ubuntu/data/CMval/17.3_T2 TSE Axial_36.jpg  
  inflating: /home/ubuntu/data/CMval/17.4_AXT2FLAIR_16.jpg  
  inflating: /home/ubuntu/data/CMval/17.5_AXT2FLAIR_18.jpg  
  inflating: /home/ubuntu/data/CMval/17.6_AXT2FLAIR_20.jpg  
  inflating: /home/ubuntu/data/CMval/17.7_AXT2FLAIR_22.jpg  
  inflating: /home/ubuntu/data/CMval/17.8_T2 TSE COR_41.jpg  
  inflating: /home/ubuntu/data/CMval/17.9_T2 TSE COR_43.jpg  
  inflating: /home/ubuntu/data/CMval/18.1_AX T1 RECON_93.jpg  
  inflating: /home/ubuntu/data/CMval/18.10_COR T2_37.jpg  
  inflating: /home/ubuntu/data/CMval/18.11_COR T2_43.jpg  
  inflating: /home/ubuntu/data/CMval/18.12_WIPmocoMEMPRAGE FOV 192_ND RMS_125.jpg  
  inflating: /home/ubuntu/data/CMval/18.13_WIPmocoMEMPRAGE FOV 192_ND RMS_132.jpg  
  inflating: /home/ubuntu/data/CMval/18.14_WIPmocoMEMPRAGE FOV 192_ND RMS_138.jpg  
  inflating: /home/ubuntu/data/CMval/18.2_AX T1 RECON_99.jpg  
  inflating: /home/ubuntu/data/CMval/18.3_AX T1 RECON_118.jpg  
  inflating: /home/ubuntu/data/CMval/18.4_AX T1 RECON_121.jpg  
  inflating: /home/ubuntu/data/CMval/18.5_AX T2_24.jpg  
  inflating: /home/ubuntu/data/CMval/18.6_AX T2_30.jpg  
  inflating: /home/ubuntu/data/CMval/18.7_AX T2_31.jpg  
  inflating: /home/ubuntu/data/CMval/18.8_AX T2_36.jpg  
  inflating: /home/ubuntu/data/CMval/18.9_AX T2_37.jpg  
  inflating: /home/ubuntu/data/CMval/19.1_1.2.840.113619.2.1.15194.2774363995.2.13.974038357_13.jpg  
  inflating: /home/ubuntu/data/CMval/19.10_1.2.840.113619.2.1.15194.2797629275.4.17.974038742_17.jpg  
  inflating: /home/ubuntu/data/CMval/19.11_1.2.840.113619.2.1.15194.2797760347.4.19.974038742_19.jpg  
  inflating: /home/ubuntu/data/CMval/19.2_1.2.840.113619.2.1.15194.2774429531.2.14.974038357_14.jpg  
  inflating: /home/ubuntu/data/CMval/19.3_1.2.840.113619.2.1.15194.2774495067.2.15.974038357_15.jpg  
  inflating: /home/ubuntu/data/CMval/19.4_1.2.840.113619.2.1.15194.2772463451.2.16.974038357_16.jpg  
  inflating: /home/ubuntu/data/CMval/19.5_1.2.840.113619.2.1.15194.2772528987.2.17.974038358_17.jpg  
  inflating: /home/ubuntu/data/CMval/19.6_1.2.840.113619.2.1.15194.2772594523.2.18.974038358_18.jpg  
  inflating: /home/ubuntu/data/CMval/19.7_1.2.840.113619.2.1.15194.2772660059.2.19.974038358_19.jpg  
  inflating: /home/ubuntu/data/CMval/19.8_1.2.840.113619.2.1.15194.2799464283.4.13.974038742_13.jpg  
  inflating: /home/ubuntu/data/CMval/19.9_1.2.840.113619.2.1.15194.2799595355.4.15.974038742_15.jpg  
  inflating: /home/ubuntu/data/CMval/20.1_AXIAL TSE T2_31.jpg  
  inflating: /home/ubuntu/data/CMval/20.10_AX MPR RECONS_91.jpg  
  inflating: /home/ubuntu/data/CMval/20.11_AX MPR RECONS_93.jpg  
  inflating: /home/ubuntu/data/CMval/20.12_AX MPR RECONS_95.jpg  
  inflating: /home/ubuntu/data/CMval/20.13_AX MPR RECONS_97.jpg  
  inflating: /home/ubuntu/data/CMval/20.14_AX MPR RECONS_99.jpg  
  inflating: /home/ubuntu/data/CMval/20.2_AXIAL TSE T2_33.jpg  
  inflating: /home/ubuntu/data/CMval/20.3_AXIAL TSE T2_35.jpg  
  inflating: /home/ubuntu/data/CMval/20.4_AXT2FLAIR_20.jpg  
  inflating: /home/ubuntu/data/CMval/20.5_AXT2FLAIR_21.jpg  
  inflating: /home/ubuntu/data/CMval/20.6_AXT2FLAIR_22.jpg  
  inflating: /home/ubuntu/data/CMval/20.7_COR T2 TSE_52.jpg  
  inflating: /home/ubuntu/data/CMval/20.8_COR T2 TSE_55.jpg  
  inflating: /home/ubuntu/data/CMval/20.9_COR T2 TSE_56.jpg  
  inflating: /home/ubuntu/data/CMval/21.1_AXT2FLAIR_25.jpg  
  inflating: /home/ubuntu/data/CMval/21.10_AXIAL MPRAGE RECON_112.jpg  
  inflating: /home/ubuntu/data/CMval/21.11_AXIAL MPRAGE RECON_115.jpg  
  inflating: /home/ubuntu/data/CMval/21.12_AXIAL MPRAGE RECON_117.jpg  
  inflating: /home/ubuntu/data/CMval/21.13_AXIAL MPRAGE RECON_120.jpg  
  inflating: /home/ubuntu/data/CMval/21.14_AXIAL MPRAGE RECON_123.jpg  
  inflating: /home/ubuntu/data/CMval/21.15_AXIAL MPRAGE RECON_126.jpg  
  inflating: /home/ubuntu/data/CMval/21.16_AXIAL MPRAGE RECON_129.jpg  
  inflating: /home/ubuntu/data/CMval/21.2_AXT2FLAIR_27.jpg  
  inflating: /home/ubuntu/data/CMval/21.3_AXT2FLAIR_29.jpg  
  inflating: /home/ubuntu/data/CMval/21.4_T2 TSE Axial_33.jpg  
  inflating: /home/ubuntu/data/CMval/21.5_T2 TSE Axial_36.jpg  
  inflating: /home/ubuntu/data/CMval/21.6_T2 TSE Axial_39.jpg  
  inflating: /home/ubuntu/data/CMval/21.7_T2 TSE Axial_42.jpg  
  inflating: /home/ubuntu/data/CMval/21.8_T2 TSE Axial_46.jpg  
  inflating: /home/ubuntu/data/CMval/21.9_AXIAL MPRAGE RECON_109.jpg  
  inflating: /home/ubuntu/data/CMval/22.1_AX T2-BR_17.jpg  
  inflating: /home/ubuntu/data/CMval/22.10_COR T2-BR_29.jpg  
  inflating: /home/ubuntu/data/CMval/22.11_SAG T1 MPRAGE-BR_27.jpg  
  inflating: /home/ubuntu/data/CMval/22.12_SAG T1 MPRAGE-BR_50.jpg  
  inflating: /home/ubuntu/data/CMval/22.2_AX T2-BR_17.jpg  
  inflating: /home/ubuntu/data/CMval/22.3_AX T2-BR_17.jpg  
  inflating: /home/ubuntu/data/CMval/22.4_AX T2-BR_17.jpg  
  inflating: /home/ubuntu/data/CMval/22.5_AX T2 FLAIR-BR_17.jpg  
  inflating: /home/ubuntu/data/CMval/22.6_AX T2 FLAIR-BR_19.jpg  
  inflating: /home/ubuntu/data/CMval/22.7_AX T2 FLAIR-BR_21.jpg  
  inflating: /home/ubuntu/data/CMval/22.8_AX T2 FLAIR-BR_23.jpg  
  inflating: /home/ubuntu/data/CMval/22.9_COR T2-BR_25.jpg  
  inflating: /home/ubuntu/data/CMval/23.1_sT2W_TSE_15.jpg  
  inflating: /home/ubuntu/data/CMval/23.2_sT2W_TSE_16.jpg  
  inflating: /home/ubuntu/data/CMval/23.3_sT2W_TSE_17.jpg  
  inflating: /home/ubuntu/data/CMval/23.4_sT2W_TSE_18.jpg  
  inflating: /home/ubuntu/data/CMval/23.5_sT2W_FLAIR_13.jpg  
  inflating: /home/ubuntu/data/CMval/23.6_sT2W_FLAIR_14.jpg  
  inflating: /home/ubuntu/data/CMval/23.7_sT2W_FLAIR_15.jpg  
  inflating: /home/ubuntu/data/CMval/23.8_sT2W_FLAIR_16.jpg  
  inflating: /home/ubuntu/data/CMval/24.1_AX T2_35.jpg  
  inflating: /home/ubuntu/data/CMval/24.10_AX T2 FLAIR_27.jpg  
  inflating: /home/ubuntu/data/CMval/24.11_AX T2 FLAIR_29.jpg  
  inflating: /home/ubuntu/data/CMval/24.12_AX T2 FLAIR_31.jpg  
  inflating: /home/ubuntu/data/CMval/24.13_COR T2_34.jpg  
  inflating: /home/ubuntu/data/CMval/24.14_COR T2_37.jpg  
  inflating: /home/ubuntu/data/CMval/24.15_COR T2_40.jpg  
  inflating: /home/ubuntu/data/CMval/24.16_COR T2_43.jpg  
  inflating: /home/ubuntu/data/CMval/24.17_COR T2_46.jpg  
  inflating: /home/ubuntu/data/CMval/24.18_COR T2_49.jpg  
  inflating: /home/ubuntu/data/CMval/24.19_COR T2_52.jpg  
  inflating: /home/ubuntu/data/CMval/24.2_AX T2_38.jpg  
  inflating: /home/ubuntu/data/CMval/24.20_COR T2_55.jpg  
  inflating: /home/ubuntu/data/CMval/24.21_AX SPACE FLAIR RECON_110.jpg  
  inflating: /home/ubuntu/data/CMval/24.22_AX SPACE FLAIR RECON_114.jpg  
  inflating: /home/ubuntu/data/CMval/24.23_AX SPACE FLAIR RECON_118.jpg  
  inflating: /home/ubuntu/data/CMval/24.24_AX SPACE FLAIR RECON_122.jpg  
  inflating: /home/ubuntu/data/CMval/24.25_AX SPACE FLAIR RECON_126.jpg  
  inflating: /home/ubuntu/data/CMval/24.26_AX SPACE FLAIR RECON_130.jpg  
  inflating: /home/ubuntu/data/CMval/24.27_AX SPACE FLAIR RECON_136.jpg  
  inflating: /home/ubuntu/data/CMval/24.28_AX SPACE FLAIR RECON_140.jpg  
  inflating: /home/ubuntu/data/CMval/24.29_AX SPACE FLAIR RECON_142.jpg  
  inflating: /home/ubuntu/data/CMval/24.3_AX T2_41.jpg  
  inflating: /home/ubuntu/data/CMval/24.30_AX SPACE FLAIR RECON_145.jpg  
  inflating: /home/ubuntu/data/CMval/24.4_AX T2_44.jpg  
  inflating: /home/ubuntu/data/CMval/24.5_AX T2_47.jpg  
  inflating: /home/ubuntu/data/CMval/24.6_AX T2_50.jpg  
  inflating: /home/ubuntu/data/CMval/24.7_AX T2 FLAIR_21.jpg  
  inflating: /home/ubuntu/data/CMval/24.8_AX T2 FLAIR_23.jpg  
  inflating: /home/ubuntu/data/CMval/24.9_AX T2 FLAIR_25.jpg  
Archive:  /home/ubuntu/data/PVNHtrain.zip
  inflating: /home/ubuntu/data/PVNHtrain/11.1_AX TSE T2_38.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/11.10_AX MPRAGE RECONS_147.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/11.2_AX TSE T2_42.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/11.3_AX TSE T2_43.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/11.4_COR FSE T2_49.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/11.5_COR FSE T2_50.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/11.6_COR MPRAGE RECONS_132.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/11.7_COR MPRAGE RECONS_134.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/11.8_AX MPRAGE RECONS_145.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/11.9_AX MPRAGE RECONS_146.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/12.1_AXFSET2_21.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/12.2_AXFSET2_22.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/12.3_AXT2FLAIR_21.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/12.4_AXT2FLAIR_22.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/12.5_CORFSET2_20.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/12.6_CORFSET2_21.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/13.1_AX FSE T2 #2_39.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/13.2_AX FSE T2 #2_40.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/13.3_COR T2-BR_16.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.1_AXIAL TSE T2_31.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.10_AXT2FLAIR_34.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.11_AXT2FLAIR_35.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.12_AXT2FLAIR_36.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.13_COR T2 TSE_28.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.14_COR T2 TSE_30.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.15_COR T2 TSE_32.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.16_COR T2 TSE_34.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.17_COR T2 TSE_36.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.18_COR T2 TSE_38.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.19_COR T2 TSE_40.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.2_AXIAL TSE T2_36.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.20_COR T2 TSE_42.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.21_COR T2 TSE_44.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.22_COR T2 TSE_46.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.23_COR T2 TSE_48.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.24_COR T2 TSE_50.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.25_COR T2 TSE_52.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.26_AX MPR RECON_88.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.27_AX MPR RECON_90.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.28_AX MPR RECON_92.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.29_AX MPR RECON_94.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.3_AXIAL TSE T2_38.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.30_AX MPR RECON_96.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.31_AX MPR RECON_98.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.32_AX MPR RECON_100.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.33_AX MPR RECON_102.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.34_AX MPR RECON_104.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.35_AX MPR RECON_106.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.36_AX MPR RECON_108.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.37_AX MPR RECON_110.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.38_AX MPR RECON_112.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.39_COR RECON MPR_60.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.4_AXIAL TSE T2_40.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.40_COR RECON MPR_63.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.41_COR RECON MPR_66.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.42_COR RECON MPR_69.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.43_COR RECON MPR_72.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.44_COR RECON MPR_75.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.45_COR RECON MPR_78.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.46_COR RECON MPR_81.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.47_COR RECON MPR_84.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.48_COR RECON MPR_87.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.49_COR RECON MPR_90.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.5_AXIAL TSE T2_42.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.50_COR RECON MPR_93.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.51_COR RECON MPR_96.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.52_COR RECON MPR_99.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.53_COR RECON MPR_102.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.54_COR RECON MPR_105.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.55_COR RECON MPR_108.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.56_COR RECON MPR_111.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.57_COR RECON MPR_114.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.58_COR RECON MPR_117.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.59_COR RECON MPR_120.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.6_AXIAL TSE T2_44.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.60_COR RECON MPR_123.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.61_COR RECON MPR_126.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.62_COR RECON MPR_129.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.7_AXIAL TSE T2_46.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.8_AXIAL TSE T2_48.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/14.9_AXT2FLAIR_32.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.1_AX T2_29.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.10_AX MPR RECONS_106.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.11_AX MPR RECONS_107.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.12_AX MPR RECONS_108.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.13_AX MPR RECONS_109.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.2_AX T2_30.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.3_AXT2FLAIR FS_19.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.4_mocoMEMPRAGE_ME_FOV220 RMS_121.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.5_mocoMEMPRAGE_ME_FOV220 RMS_122.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.6_mocoMEMPRAGE_ME_FOV220 RMS_123.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.7_mocoMEMPRAGE_ME_FOV220 RMS_124.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.8_mocoMEMPRAGE_ME_FOV220 RMS_125.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/15.9_AX MPR RECONS_105.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.1_AX_T2_38.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.10_AX_T2 FLAIR_fs_27.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.11_AX_T2 FLAIR_fs_29.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.12_SAG_T1 MPRAGE_78.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.13_SAG_T1 MPRAGE_79.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.14_SAG_T1 MPRAGE_80.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.15_SAG_T1 MPRAGE_116.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.16_SAG_T1 MPRAGE_117.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.17_SAG_T1 MPRAGE_118.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.18_SAG_T1 MPRAGE_119.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.19_COR_T2 (fast)_15.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.2_AX_T2_39.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.20_COR_T2 (fast)_16.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.21_COR_T2 (fast)_17.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.22_COR_T2 (fast)_18.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.23_COR_T2 (fast)_19.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.24_COR_T2 (fast)_20.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.25_COR_T2 (fast)_21.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.26_COR_T2 (fast)_22.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.27_COR_T2 (fast)_23.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.28_COR_T2 (fast)_24.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.29_COR_T2 (fast)_25.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.3_AX_T2_40.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.30_COR_T2 (fast)_26.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.31_COR_T2 (fast)_27.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.32_COR_T2 (fast)_28.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.33_COR_T2 (fast)_29.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.34_AX_T2 FLAIR_fs (fast)_24.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.35_AX_T2 FLAIR_fs (fast)_25.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.36_AX_T2 FLAIR_fs (fast)_26.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.37_AX MPGR RECON_118.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.38_AX MPGR RECON_120.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.39_AX MPGR RECON_122.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.4_AX_T2_41.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.40_AX MPGR RECON_124.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.41_AX MPGR RECON_126.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.42_AX MPGR RECON_128.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.43_AX MPGR RECON_130.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.44_AX MPGR RECON_132.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.45_AX MPGR RECON_134.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.46_AX MPGR RECON_136.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.47_AX MPGR RECON_138.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.48_AX MPGR RECON_140.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.49_COR MPRAGE RECON_72.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.5_AX_T2_42.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.50_COR MPRAGE RECON_75.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.51_COR MPRAGE RECON_78.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.52_COR MPRAGE RECON_81.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.53_COR MPRAGE RECON_84.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.54_COR MPRAGE RECON_87.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.55_COR MPRAGE RECON_90.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.56_COR MPRAGE RECON_93.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.57_COR MPRAGE RECON_96.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.58_COR MPRAGE RECON_99.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.59_COR MPRAGE RECON_102.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.6_AX_T2_43.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.60_COR MPRAGE RECON_105.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.61_COR MPRAGE RECON_108.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.62_COR MPRAGE RECON_111.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.63_COR MPRAGE RECON_114.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.64_COR MPRAGE RECON_117.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.65_COR MPRAGE RECON_120.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.66_COR MPRAGE RECON_123.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.67_COR MPRAGE RECON_126.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.68_COR MPRAGE RECON_129.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.69_COR MPRAGE RECON_132.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.7_AX_T2_44.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.70_AX FLAIR RECON_121.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.71_AX FLAIR RECON_124.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.72_AX FLAIR RECON_127.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.73_AX FLAIR RECON_130.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.74_AX FLAIR RECON_133.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.8_AX_T2_45.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/16.9_AX_T2_46.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/17.1_SAG_T1 MPRAGE_MPR_Ax_103.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/17.2_SAG_T1 MPRAGE_MPR_Ax_104.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/17.3_SAG_T1 MPRAGE_MPR_Ax_105.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/17.4_SAG_T1 MPRAGE_MPR_Ax_106.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/17.5_SAG_T1 MPRAGE_MPR_Ax_107.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/17.6_COR_T2_43.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/17.7_COR_T2_44.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/17.8_AX_T2_35.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/17.9_AX_T2_36.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.1_AX TSE T2 (TRIO PARAMETERS)_26.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.10_COR FSE T2 (ANGLED)_30.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.11_AX MPRAGE 2_72.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.12_AX MPRAGE 2_73.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.13_AX MPRAGE 2_74.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.14_AX MPRAGE 2_75.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.15_AX MPRAGE 2_76.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.16_COR MPRAGE 2_82.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.17_COR MPRAGE 2_83.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.18_COR MPRAGE 2_84.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.19_COR MPRAGE 2_85.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.2_AX TSE T2 (TRIO PARAMETERS)_27.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.20_COR MPRAGE 2_86.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.21_AX SPACE RECON_149.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.22_AX SPACE RECON_150.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.23_AX SPACE RECON_151.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.24_AX SPACE RECON_152.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.25_AX SPACE RECON_153.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.26_AX SPACE RECON_154.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.27_AX SPACE RECON_155.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.3_AX TSE T2 (TRIO PARAMETERS)_28.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.4_AX TSE T2 (TRIO PARAMETERS)_29.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.5_AX T2 FLAIR_17.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.6_COR FSE T2 (ANGLED)_26.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.7_COR FSE T2 (ANGLED)_27.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.8_COR FSE T2 (ANGLED)_28.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/18.9_COR FSE T2 (ANGLED)_29.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/19.1_AX TSE T2 (TRIO PARAMETERS)_46.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/19.2_AX TSE T2 (TRIO PARAMETERS)_47.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/19.3_AX T2 FLAIR_30.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/19.4_COR FSE T2 (ANGLED)_38.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.1_AX T2-BR 2.5mm_39.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.10_AX FLAIR MPR CORRECT_103.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.11_AX FLAIR MPR CORRECT_104.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.2_AX T2-BR 2.5mm_40.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.3_AX T2 FLAIR-fat sat_24.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.4_COR T2-BR 2.5mm_22.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.5_COR MPRAGE MPR_73.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.6_COR MPRAGE MPR_74.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.7_COR FLAIR MPR_73.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.8_COR FLAIR MPR_74.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/20.9_COR FLAIR MPR_75.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.1_AXFSET2_30.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.10_COR MPRAGE RECON_127.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.11_COR MPRAGE RECON_129.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.12_COR MPRAGE RECON_131.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.13_COR MPRAGE RECON_133.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.14_COR MPRAGE RECON_135.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.15_COR MPRAGE RECON_137.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.16_AX MPRAGE RECON_70.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.17_AX MPRAGE RECON_71.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.18_AX MPRAGE RECON_72.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.19_COR FLAIR RECON_122.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.2_AXFSET2_31.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.20_COR FLAIR RECON_124.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.21_COR FLAIR RECON_126.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.22_COR FLAIR RECON_128.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.23_COR FLAIR RECON_130.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.24_COR FLAIR RECON_132.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.25_COR FLAIR RECON_134.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.26_COR FLAIR RECON_136.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.27_COR FLAIR RECON_138.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.28_AX FLAIR RECON_80.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.29_AX FLAIR RECON_81.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.3_AXFSET2_32.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.30_AX FLAIR RECON_82.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.31_AX FLAIR RECON_83.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.32_AX FLAIR RECON_84.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.33_COR FSET2_19.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.34_COR FSET2_21.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.35_COR FSET2_23.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.36_COR FSET2_25.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.37_COR FSET2_27.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.4_COR FSET2_20.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.5_COR FSET2_22.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.6_COR FSET2_24.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.7_COR FSET2_26.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.8_COR FSET2_28.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/21.9_COR MPRAGE RECON_125.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.1_AX T2-BR 2.5mm OPTIMIZED 52410_37.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.10_COR T2-BR 2.5mm OPTIMIZED 52410_30.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.11_coronal reformat_54.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.12_coronal reformat_56.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.13_coronal reformat_58.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.14_coronal reformat_59.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.2_AX T2-BR 2.5mm OPTIMIZED 52410_38.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.3_AX T2-BR 2.5mm OPTIMIZED 52410_39.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.4_AX T2-BR 2.5mm OPTIMIZED 52410_40.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.5_AX T2-BR 2.5mm OPTIMIZED 52410_41.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.6_AX T2-BR 2.5mm OPTIMIZED 52410_42.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.7_COR T2-BR 2.5mm OPTIMIZED 52410_24.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.8_COR T2-BR 2.5mm OPTIMIZED 52410_26.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/22.9_COR T2-BR 2.5mm OPTIMIZED 52410_28.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/23.1_AX FSE T2_41.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/23.2_AX MPRAGE RECON_121.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.1_AX T2_29.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.10_COR T2_28.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.11_AX REFORMAT_116.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.12_AX REFORMAT_117.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.13_AX REFORMAT_118.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.14_AX REFORMAT_119.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.15_AX REFORMAT_120.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.16_COR REFORMAT_63.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.17_COR REFORMAT_65.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.18_COR REFORMAT_67.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.19_COR REFORMAT_69.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.2_AX T2_30.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.20_COR REFORMAT_71.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.21_COR REFORMAT_73.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.22_COR REFORMAT_75.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.3_COR T2_21.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.4_COR T2_22.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.5_COR T2_23.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.6_COR T2_24.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.7_COR T2_25.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.8_COR T2_26.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/24.9_COR T2_27.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/25.1_AX T2-BR 2.5mm OPTIMIZED 52410_38.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/25.2_AX T2-BR 2.5mm OPTIMIZED 52410_39.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/25.3_AX T2-BR 2.5mm OPTIMIZED 52410_40.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/25.4_AX T2-BR 2.5mm OPTIMIZED 52410_41.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.1_AX T2_45.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.10_COR T2_48.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.11_CORONAL REFORMAT_125.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.12_CORONAL REFORMAT_127.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.13_CORONAL REFORMAT_129.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.14_CORONAL REFORMAT_131.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.15_SPACE AXIAL REFORMAT_127.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.16_SPACE AXIAL REFORMAT_128.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.17_SPACE AXIAL REFORMAT_129.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.18_SPACE AXIAL REFORMAT_130.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.19_SPACE AXIAL REFORMAT_131.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.2_AX T2_46.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.20_SPACE AXIAL REFORMAT_132.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.21_SPACE AXIAL REFORMAT_133.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.22_SPACE AXIAL REFORMAT_134.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.23_SPACE AXIAL REFORMAT_135.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.24_SPACE CORONAL REFORMAT_116.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.25_SPACE CORONAL REFORMAT_117.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.26_SPACE CORONAL REFORMAT_118.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.27_SPACE CORONAL REFORMAT_119.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.28_SPACE CORONAL REFORMAT_120.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.29_SPACE CORONAL REFORMAT_121.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.3_AX T2_47.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.30_SPACE CORONAL REFORMAT_122.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.31_SPACE CORONAL REFORMAT_123.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.32_SPACE CORONAL REFORMAT_124.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.33_SPACE CORONAL REFORMAT_125.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.34_SPACE CORONAL REFORMAT_126.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.35_SPACE CORONAL REFORMAT_127.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.36_SPACE CORONAL REFORMAT_128.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.37_SPACE CORONAL REFORMAT_129.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.4_AX T2_48.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.5_COR T2_43.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.6_COR T2_44.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.7_COR T2_45.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.8_COR T2_46.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/26.9_COR T2_47.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/27.1_AX FSE T2_38.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/27.2_AX FSE T2_39.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/27.3_AX FSE T2_40.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/27.4_AX FSE T2_41.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/27.5_AX FSE T2_42.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/27.6_AX T2 FLAIR_19.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/27.7_AX T2 FLAIR_20.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/28.1_T2W_TSE CLEAR_12.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/28.2_T2W_TSE CLEAR_13.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/28.3_T2W_TSE CLEAR_14.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/28.4_T2W_TSE CLEAR_15.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/28.5_T2W_TSE CLEAR_16.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/28.6_T2W_FLAIR CLEAR_15.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/28.7_T2W_FLAIR CLEAR_16.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.1_T2W_TSE CLEAR_11.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.10_COR_T2W_TSE_4mm_14.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.11_COR_T2W_TSE_4mm_16.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.12_COR_T2W_TSE_4mm_19.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.13_COR_T2W_TSE_4mm_20.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.14_COR_T2W_TSE_4mm_21.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.15_COR_T2W_TSE_4mm_22.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.2_T2W_TSE CLEAR_12.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.3_T2W_TSE CLEAR_13.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.4_T2W_TSE CLEAR_14.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.5_T2W_TSE CLEAR_15.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.6_T2W_TSE CLEAR_16.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.7_T2W_FLAIR CLEAR_15.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.8_T2W_FLAIR CLEAR_16.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/29.9_COR_T2W_TSE_4mm_13.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.1_T2 TSE Axial (REPEAT)_39.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.10_COR MPRAGE RECON_138.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.11_COR MPRAGE RECON_139.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.12_COR MPRAGE RECON_140.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.13_AX MPRAGE RECON_100.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.14_AX MPRAGE RECON_101.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.15_AX MPRAGE RECON_102.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.16_AX MPRAGE RECON_103.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.17_AX MPRAGE RECON_104.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.18_AX MPRAGE RECON_105.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.19_AX MPRAGE RECON_106.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.2_T2 TSE Axial (REPEAT)_40.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.20_COR FLAIR RECON_56.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.21_COR FLAIR RECON_57.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.3_T2 TSE Axial (REPEAT)_41.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.4_T2 TSE Axial (REPEAT)_42.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.5_T2 TSE COR_42.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.6_T2 TSE COR_43.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.7_T2 TSE COR_44.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.8_COR MPRAGE RECON_136.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/30.9_COR MPRAGE RECON_137.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/31.1_COR T2_24.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/31.2_COR T2_25.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/31.3_COR T2_26.jpg  
  inflating: /home/ubuntu/data/PVNHtrain/31.4_COR T2_27.jpg  
Archive:  /home/ubuntu/data/PVNHval.zip
  inflating: /home/ubuntu/data/PVNHval/10.1_AX_T2 (fast)_33.jpg  
  inflating: /home/ubuntu/data/PVNHval/10.2_AX_T2 (fast)_35.jpg  
  inflating: /home/ubuntu/data/PVNHval/10.3_AX_T2 (fast)_37.jpg  
  inflating: /home/ubuntu/data/PVNHval/10.4_AX_T2 FLAIR_fs (fast)_36.jpg  
  inflating: /home/ubuntu/data/PVNHval/10.5_AX_T2 FLAIR_fs (fast)_37.jpg  
  inflating: /home/ubuntu/data/PVNHval/10.6_COR_T2 (fast)_21.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.1_AX T2_31.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.10_AXT2FLAIR FS_27.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.100_COR MPR RECONS_130.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.101_COR MPR RECONS_131.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.102_COR MPR RECONS_132.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.103_COR MPR RECONS_133.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.104_COR MPR RECONS_134.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.105_COR MPR RECONS_135.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.106_COR MPR RECONS_136.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.107_COR MPR RECONS_137.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.108_COR MPR RECONS_138.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.109_COR MPR RECONS_139.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.11_COR T2_21.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.110_COR MPR RECONS_140.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.111_COR MPR RECONS_141.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.112_COR MPR RECONS_142.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.113_COR MPR RECONS_143.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.114_COR MPR RECONS_144.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.115_COR MPR RECONS_145.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.116_COR MPR RECONS_146.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.117_COR MPR RECONS_147.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.118_COR MPR RECONS_148.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.119_COR MPR RECONS_149.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.12_COR T2_23.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.13_COR T2_25.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.14_COR T2_27.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.15_COR T2_29.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.16_COR T2_31.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.17_COR T2_33.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.18_COR T2_35.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.19_COR T2_37.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.2_AX T2_33.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.20_COR T2_39.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.21_AX MPR RECONS_124.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.22_AX MPR RECONS_127.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.23_AX MPR RECONS_130.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.24_AX MPR RECONS_133.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.25_AX MPR RECONS_136.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.26_AX MPR RECONS_139.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.27_AX MPR RECONS_142.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.28_COR MPR RECONS_66.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.29_COR MPR RECONS_70.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.3_AX T2_35.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.30_COR MPR RECONS_74.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.31_COR MPR RECONS_78.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.32_COR MPR RECONS_82.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.33_COR MPR RECONS_86.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.34_COR MPR RECONS_90.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.35_COR MPR RECONS_94.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.36_COR MPR RECONS_98.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.37_COR MPR RECONS_102.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.38_COR MPR RECONS_106.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.39_COR MPR RECONS_111.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.4_AX T2_37.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.40_COR MPR RECONS_116.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.41_COR MPR RECONS_121.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.42_COR MPR RECONS_126.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.43_COR MPR RECONS_129.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.44_AX MPR RECONS_109.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.45_AX MPR RECONS_110.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.46_AX MPR RECONS_111.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.47_AX MPR RECONS_112.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.48_AX MPR RECONS_113.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.49_AX MPR RECONS_114.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.5_AX T2_39.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.50_AX MPR RECONS_115.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.51_AX MPR RECONS_116.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.52_AX MPR RECONS_117.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.53_AX MPR RECONS_118.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.54_AX MPR RECONS_119.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.55_AX MPR RECONS_120.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.56_AX MPR RECONS_121.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.57_AX MPR RECONS_122.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.58_AX MPR RECONS_123.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.59_AX MPR RECONS_125.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.6_AX T2_41.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.60_AX MPR RECONS_126.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.61_AX MPR RECONS_128.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.62_AX MPR RECONS_129.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.63_AX MPR RECONS_131.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.64_AX MPR RECONS_132.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.65_AX MPR RECONS_134.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.66_AX MPR RECONS_135.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.67_AX MPR RECONS_137.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.68_AX MPR RECONS_138.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.69_AX MPR RECONS_140.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.7_AX T2_43.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.70_AX MPR RECONS_141.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.71_AX MPR RECONS_143.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.72_AX MPR RECONS_144.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.73_COR MPR RECONS_67.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.74_COR MPR RECONS_69.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.75_COR MPR RECONS_72.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.76_COR MPR RECONS_75.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.77_COR MPR RECONS_77.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.78_COR MPR RECONS_80.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.79_COR MPR RECONS_84.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.8_AXT2FLAIR FS_25.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.80_COR MPR RECONS_88.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.81_COR MPR RECONS_91.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.82_COR MPR RECONS_93.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.83_COR MPR RECONS_95.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.84_COR MPR RECONS_97.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.85_COR MPR RECONS_99.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.86_COR MPR RECONS_101.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.87_COR MPR RECONS_103.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.88_COR MPR RECONS_105.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.89_COR MPR RECONS_107.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.9_AXT2FLAIR FS_26.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.90_COR MPR RECONS_109.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.91_COR MPR RECONS_112.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.92_COR MPR RECONS_114.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.93_COR MPR RECONS_118.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.94_COR MPR RECONS_120.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.95_COR MPR RECONS_122.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.96_COR MPR RECONS_123.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.97_COR MPR RECONS_125.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.98_COR MPR RECONS_127.jpg  
  inflating: /home/ubuntu/data/PVNHval/7.99_COR MPR RECONS_128.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.1_AX_T2 (fast)_31.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.10_SAG_T1 MPRAGE (fast)_100.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.11_AX RECON_82.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.12_AX RECON_85.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.13_AX RECON_88.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.14_AX RECON_91.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.15_AX RECON_94.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.16_AX RECON_97.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.17_AX RECON_100.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.18_AX RECON_103.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.19_AX RECON_106.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.2_AX_T2 (fast)_33.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.20_AX RECON_109.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.21_COR RECON_56.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.22_COR RECON_60.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.23_COR RECON_64.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.24_COR RECON_68.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.25_COR RECON_72.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.26_COR RECON_76.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.27_COR RECON_80.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.28_COR RECON_84.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.29_COR RECON_88.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.3_AX_T2 (fast)_35.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.30_COR RECON_92.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.31_COR_T2 (fast)_17.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.32_COR_T2 (fast)_18.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.33_COR_T2 (fast)_19.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.34_COR_T2 (fast)_20.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.35_COR_T2 (fast)_21.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.36_COR_T2 (fast)_22.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.37_COR_T2 (fast)_23.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.38_COR_T2 (fast)_24.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.39_COR_T2 (fast)_25.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.4_AX_T2 FLAIR_fs (fast)_32.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.40_COR_T2 (fast)_26.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.41_COR_T2 (fast)_27.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.42_COR_T2 (fast)_28.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.43_COR_T2 (fast)_29.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.44_COR_T2 (fast)_30.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.45_COR_T2 (fast)_31.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.5_AX_T2 FLAIR_fs (fast)_33.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.6_AX_T2 FLAIR_fs (fast)_34.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.7_AX_T2 FLAIR_fs (fast)_35.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.8_SAG_T1 MPRAGE (fast)_65.jpg  
  inflating: /home/ubuntu/data/PVNHval/8.9_SAG_T1 MPRAGE (fast)_98.jpg  
  inflating: /home/ubuntu/data/PVNHval/9.1_1.2.840.113619.2.176.3596.6358506.7084.1131056254.598_15.jpg  
  inflating: /home/ubuntu/data/PVNHval/9.2_1.2.840.113619.2.176.3596.6358506.7084.1131056254.599_16.jpg  
  inflating: /home/ubuntu/data/PVNHval/9.3_1.2.840.113619.2.176.3596.6358506.7084.1131056254.600_17.jpg  
  inflating: /home/ubuntu/data/PVNHval/9.4_1.2.840.113619.2.176.3596.6358506.7084.1131056254.921_16.jpg  
  inflating: /home/ubuntu/data/PVNHval/9.5_1.2.840.113619.2.176.3596.6358506.7084.1131056254.910_17.jpg  

Paths to original and processed images

In [4]:
# Path to the folder with the original images
pathtoimagesControltrain = './data/Controltrain/'
pathtoimagesControlval = './data/Controlval/'

pathtoimagesCMtrain = './data/CMtrain/'
pathtoimagesCMval = './data/CMval/'

pathtoimagesPVNHtrain = './data/PVNHtrain/'
pathtoimagesPVNHval = './data/PVNHval/'


# Create directories to save the processed images
! mkdir ~/data/processedControltrain 
! mkdir ~/data/processedControlval

! mkdir ~/data/processedCMtrain 
! mkdir ~/data/processedCMval

! mkdir ~/data/processedPVNHtrain 
! mkdir ~/data/processedPVNHval


# Path to the folder with the processed images
pathtoprocessedimagesControltrain = './data/processedControltrain/'
pathtoprocessedimagesControlval = './data/processedControlval/'

pathtoprocessedimagesCMtrain = './data/processedCMtrain/'
pathtoprocessedimagesCMval = './data/processedCMval/'

pathtoprocessedimagesPVNHtrain = './data/processedPVNHtrain/'
pathtoprocessedimagesPVNHval = './data/processedPVNHval/'


# Create directories to save the augmented images for the train datasets
! mkdir ~/data/augmentedControltrain 
! mkdir ~/data/augmentedCMtrain 
! mkdir ~/data/augmentedPVNHtrain 


# Create the directory to save the augmented images
pathtoaugmentedimagesControltrain = './data/augmentedControltrain/'
pathtoaugmentedimagesCMtrain = './data/augmentedCMtrain/'
pathtoaugmentedimagesPVNHtrain = './data/augmentedPVNHtrain/'

Read in, preprocess, and augment Controltrain images

In [5]:
# Define the image size
image_size = (512, 512)

# Read in the training images
Controltrain_dir = pathtoimagesControltrain
Controltrain_files = os.listdir(Controltrain_dir)
# For each image
for f in Controltrain_files:
    # Open the image
    img = Image.open(Controltrain_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array with no page number and save it into the preprocessed folder
    img_arr = np.array(img)
    img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
    processed_img = Image.fromarray(img_arr, 'RGB')
    processed_img_name = './data/processedControltrain/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
    str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
    str(np.random.randint(low=1e2, high=1e8))+'.jpg'
    processed_img.save(processed_img_name)
In [6]:
# Define the characteristics for data augmentation
datagen = ImageDataGenerator(
        rotation_range=25,
        width_shift_range=0.15,
        height_shift_range=0.15,
        shear_range=0.15,
        zoom_range=0.25,
        horizontal_flip=True,
        fill_mode='nearest')

# Path to images
ProcessedControltrain_files = os.listdir(pathtoprocessedimagesControltrain)

# Augment the images
ProcessedControltrain_dir = pathtoprocessedimagesControltrain
for f in ProcessedControltrain_files:
    img = load_img(ProcessedControltrain_dir + f)
    x = img_to_array(img)
    x = x.reshape((1,) + x.shape)

    # Save the augmented images into a directory of augmented images
    i = 0
    for batch in datagen.flow(x, batch_size=1,
                              save_to_dir=pathtoaugmentedimagesControltrain, 
                              save_prefix='augmented'+str(np.random.randint(low=1, high=1e8))+str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+
                              str(np.random.randint(low=1e5, high=1e8))+str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+str(np.random.randint(low=1e2, high=1e8)), 
                              save_format='jpg'):
        i += 1
        if i > 5:
            break  # Break the cycle after having created 6 augmented images per image, otherwise the generator would loop indefinitely

Read in and preprocess Controlval images

In [7]:
# Define the image size
image_size = (512, 512)

# Read in the validation images
Controlval_dir = pathtoimagesControlval
Controlval_files = os.listdir(Controlval_dir)
# For each image
for f in Controlval_files:
    # Open the image
    img = Image.open(Controlval_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array with no page number and save it into the preprocessed folder
    img_arr = np.array(img)
    img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
    processed_img = Image.fromarray(img_arr, 'RGB')
    processed_img_name = './data/processedControlval/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
    str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
    str(np.random.randint(low=1e2, high=1e8))+'.jpg'
    processed_img.save(processed_img_name)

Read in, preprocess, and augment CMtrain images

In [8]:
# Define the image size
image_size = (512, 512)

# Read in the training images
CMtrain_dir = pathtoimagesCMtrain
CMtrain_files = os.listdir(CMtrain_dir)
# For each image
for f in CMtrain_files:
    # Open the image
    img = Image.open(CMtrain_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array with no page number and save it into the preprocessed folder
    img_arr = np.array(img)
    img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
    processed_img = Image.fromarray(img_arr, 'RGB')
    processed_img_name = './data/processedCMtrain/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
    str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
    str(np.random.randint(low=1e2, high=1e8))+'.jpg'
    processed_img.save(processed_img_name)    
In [9]:
# Define the characteristics for data augmentation
datagen = ImageDataGenerator(
        rotation_range=25,
        width_shift_range=0.15,
        height_shift_range=0.15,
        shear_range=0.15,
        zoom_range=0.25,
        horizontal_flip=True,
        fill_mode='nearest')

# Path to images
ProcessedCMtrain_files = os.listdir(pathtoprocessedimagesCMtrain)

# Augment the images
ProcessedCMtrain_dir = pathtoprocessedimagesCMtrain
for f in ProcessedCMtrain_files:
    img = load_img(ProcessedCMtrain_dir + f)
    x = img_to_array(img)
    x = x.reshape((1,) + x.shape)

    # Save the augmented images into a directory of augmented images
    i = 0
    for batch in datagen.flow(x, batch_size=1,
                              save_to_dir=pathtoaugmentedimagesCMtrain, save_prefix='augmented'+str(np.random.randint(low=1e5, high=1e8))+str(np.random.randint(low=1e3, high=1e5))+str(np.random.randint(low=1e2, high=1e7))+
                              str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e2, high=1e8))+str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))
                              , save_format='jpg'):
        i += 1
        if i > 5:
            break  # Break the cycle after having created 6 augmented images per image, otherwise the generator would loop indefinitely

Read in and preprocess CMval images

In [10]:
# Define the image size
image_size = (512, 512)

# Read in the validation images
CMval_dir = pathtoimagesCMval
CMval_files = os.listdir(CMval_dir)
# For each image
for f in CMval_files:
    # Open the image
    img = Image.open(CMval_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array with no page number and save it into the preprocessed folder
    img_arr = np.array(img)
    img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
    processed_img = Image.fromarray(img_arr, 'RGB')
    processed_img_name = './data/processedCMval/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
    str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
    str(np.random.randint(low=1e2, high=1e8))+'.jpg'
    processed_img.save(processed_img_name) 

Read in, preprocess, and augment PVNHtrain images

In [11]:
# Define the image size
image_size = (512, 512)

# Read in the training images
PVNHtrain_dir = pathtoimagesPVNHtrain
PVNHtrain_files = os.listdir(PVNHtrain_dir)
# For each image
for f in PVNHtrain_files:
    # Open the image
    img = Image.open(PVNHtrain_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array with no page number and save it into the preprocessed folder
    img_arr = np.array(img)
    img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
    processed_img = Image.fromarray(img_arr, 'RGB')
    processed_img_name = './data/processedPVNHtrain/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
    str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
    str(np.random.randint(low=1e2, high=1e8))+'.jpg'
    processed_img.save(processed_img_name)    
In [12]:
# Define the characteristics for data augmentation
datagen = ImageDataGenerator(
        rotation_range=25,
        width_shift_range=0.15,
        height_shift_range=0.15,
        shear_range=0.15,
        zoom_range=0.25,
        horizontal_flip=True,
        fill_mode='nearest')

# Path to images
ProcessedPVNHtrain_files = os.listdir(pathtoprocessedimagesPVNHtrain)

# Augment the images
ProcessedPVNHtrain_dir = pathtoprocessedimagesPVNHtrain
for f in ProcessedPVNHtrain_files:
    img = load_img(ProcessedPVNHtrain_dir + f)
    x = img_to_array(img)
    x = x.reshape((1,) + x.shape)

    # Save the augmented images into a directory of augmented images
    i = 0
    for batch in datagen.flow(x, batch_size=1,
                              save_to_dir=pathtoaugmentedimagesPVNHtrain, save_prefix='augmented'+str(np.random.randint(low=1e5, high=1e8))+str(np.random.randint(low=1e3, high=1e5))+str(np.random.randint(low=1e2, high=1e7))+
                              str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e2, high=1e8))+str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))
                              , save_format='jpg'):
        i += 1
        if i > 5:
            break  # Break the cycle after having created 6 augmented images per image, otherwise the generator would loop indefinitely

Read in and preprocess PVNHval images

In [13]:
# Define the image size
image_size = (512, 512)

# Read in the validation images
PVNHval_dir = pathtoimagesPVNHval
PVNHval_files = os.listdir(PVNHval_dir)
# For each image
for f in PVNHval_files:
    # Open the image
    img = Image.open(PVNHval_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array with no page number and save it into the preprocessed folder
    img_arr = np.array(img)
    img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
    processed_img = Image.fromarray(img_arr, 'RGB')
    processed_img_name = './data/processedPVNHval/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
    str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
    str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
    str(np.random.randint(low=1e2, high=1e8))+'.jpg'
    processed_img.save(processed_img_name) 

SECOND PART: IMPORTATION OF FINAL DATA

Path to the final images

In [14]:
# Create directories for the final images
!mkdir ~/data/FinalControltrain 
!mkdir ~/data/FinalControlval 

!mkdir ~/data/FinalCMtrain 
!mkdir ~/data/FinalCMval 

!mkdir ~/data/FinalPVNHtrain 
!mkdir ~/data/FinalPVNHval 
In [15]:
# Copy all processed images and augmented images to the final folders
!cp ./data/processedControltrain/* ./data/FinalControltrain/
!cp ./data/augmentedControltrain/* ./data/FinalControltrain/
!cp ./data/processedControlval/* ./data/FinalControlval/

!cp ./data/processedCMtrain/* ./data/FinalCMtrain/
!cp ./data/augmentedCMtrain/* ./data/FinalCMtrain/
!cp ./data/processedCMval/* ./data/FinalCMval/

!cp ./data/processedPVNHtrain/* ./data/FinalPVNHtrain/
!cp ./data/augmentedPVNHtrain/* ./data/FinalPVNHtrain/
!cp ./data/processedPVNHval/* ./data/FinalPVNHval/
In [16]:
## Path to final images
pathtofinalControltrain = './data/FinalControltrain/'
pathtofinalControlval = './data/FinalControlval/'

pathtofinalCMtrain = './data/FinalCMtrain/'
pathtofinalCMval = './data/FinalCMval/'

pathtofinalPVNHtrain = './data/FinalPVNHtrain/'
pathtofinalPVNHval = './data/FinalPVNHval/'

Import images and labels for the train set

In [17]:
## CONTROLS

# Define the image size
image_size = (512, 512)

# Read in the training images for controls
Controltrain_images = []
Controltrain_dir = pathtofinalControltrain
Controltrain_files = os.listdir(Controltrain_dir)
# For each image
for f in Controltrain_files:
    # Open the image
    img = Image.open(Controltrain_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array
    img_arr = np.array(img)
    # Add the image to the array of images      
    Controltrain_images.append(img_arr)

# After having transformed all images, transform the list into a numpy array  
Controltrain_X = np.array(Controltrain_images)

# Create an array of labels (0 for controls)
Controltrain_y = np.array([[0]*Controltrain_X.shape[0]]).T




## DIFFUSE CM

# Read in the training images for CM
CMtrain_images = []
CMtrain_dir = pathtofinalCMtrain
CMtrain_files = os.listdir(CMtrain_dir)
# For each image
for f in CMtrain_files:
    # Open the image
    img = Image.open(CMtrain_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array
    img_arr = np.array(img)
    # Add the image to the array of images      
    CMtrain_images.append(img_arr)

# After having transformed all images, transform the list into a numpy array  
CMtrain_X = np.array(CMtrain_images)

# Create an array of labels (1 for CM)
CMtrain_y = np.array([[1]*CMtrain_X.shape[0]]).T




## PVNH

# Read in the training images for PVNH
PVNHtrain_images = []
PVNHtrain_dir = pathtofinalPVNHtrain
PVNHtrain_files = os.listdir(PVNHtrain_dir)
# For each image
for f in PVNHtrain_files:
    # Open the image
    img = Image.open(PVNHtrain_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array
    img_arr = np.array(img)
    # Add the image to the array of images      
    PVNHtrain_images.append(img_arr)

# After having transformed all images, transform the list into a numpy array  
PVNHtrain_X = np.array(PVNHtrain_images)

# Create an array of labels (2 for PVNH)
PVNHtrain_y = np.array([[2]*PVNHtrain_X.shape[0]]).T




## MERGE CONTROLS, DIFFUSE CM, AND PVNH

# Train merge files
train_X = np.concatenate([Controltrain_X, CMtrain_X, PVNHtrain_X])
train_y = np.vstack((Controltrain_y, CMtrain_y, PVNHtrain_y))

# GPU expects values to be 32-bit floats
train_X = train_X.astype(np.float32)

# Rescale the pixel values to be between 0 and 1
train_X /= 255.
In [18]:
# Shuffle in unison the train_X and the train_y array (123 is just a random number for reproducibility)
shuffled_train_X, shuffled_train_y = shuffle(train_X, train_y, random_state=123)

# Transform outcome to one-hot encoding
shuffled_train_y = to_categorical(shuffled_train_y)
In [19]:
# Make sure that the dimensions are as expected
shuffled_train_X.shape
Out[19]:
(8108, 512, 512, 3)
In [20]:
# Example of an image to make sure they were converted right
plt.imshow(shuffled_train_X[0])
plt.grid(b=None)
plt.xticks([])
plt.yticks([])
plt.show()
In [21]:
# Make sure that the dimensions are as expected
shuffled_train_y.shape
Out[21]:
(8108, 3)
In [22]:
# Make sure that the label is correct for the image
shuffled_train_y[0]
Out[22]:
array([1., 0., 0.], dtype=float32)

Import images and labels for the validation set

In [23]:
## VALIDATION

# Define the image size
image_size = (512, 512)

# Read in the validation images for controls
Controlval_images = []
Controlval_dir = pathtofinalControlval
Controlval_files = os.listdir(Controlval_dir)
# For each image
for f in Controlval_files:
    # Open the image
    img = Image.open(Controlval_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array
    img_arr = np.array(img)
    # Add the image to the array of images      
    Controlval_images.append(img_arr)

# After having transformed all images, transform the list into a numpy array  
Controlval_X = np.array(Controlval_images)

# Create an array of labels (0 for controls)
Controlval_y = np.array([[0]*Controlval_X.shape[0]]).T




## DIFFUSE CM

# Read in the validation images for CM
CMval_images = []
CMval_dir = pathtofinalCMval
CMval_files = os.listdir(CMval_dir)
# For each image
for f in CMval_files:
    # Open the image
    img = Image.open(CMval_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array
    img_arr = np.array(img)
    # Add the image to the array of images      
    CMval_images.append(img_arr)

# After having transformed all images, transform the list into a numpy array  
CMval_X = np.array(CMval_images)

# Create an array of labels (1 for CM)
CMval_y = np.array([[1]*CMval_X.shape[0]]).T




## PVNH

# Read in the validation images for PVNH
PVNHval_images = []
PVNHval_dir = pathtofinalPVNHval
PVNHval_files = os.listdir(PVNHval_dir)
# For each image
for f in PVNHval_files:
    # Open the image
    img = Image.open(PVNHval_dir + f)
    # Resize the image so that it has a size 512x512
    img = img.resize(image_size)
    # Transform into a numpy array
    img_arr = np.array(img)
    # Add the image to the array of images      
    PVNHval_images.append(img_arr)

# After having transformed all images, transform the list into a numpy array  
PVNHval_X = np.array(PVNHval_images)

# Create an array of labels (2 for PVNH)
PVNHval_y = np.array([[2]*PVNHval_X.shape[0]]).T




## MERGE CONTROLS, DIFFUSE CM, AND PVNH

# Val merge files
val_X = np.concatenate([Controlval_X, CMval_X, PVNHval_X])
val_y = np.vstack((Controlval_y, CMval_y, PVNHval_y))

# GPU expects pixel values to be 32-bit floats
val_X = val_X.astype(np.float32)

# Rescale the pixel values to be between 0 and 1
val_X /= 255.
In [24]:
# Shuffle in unison the val_X and the val_y array (123 is just a random number for reproducibility)
shuffled_val_X, shuffled_val_y = shuffle(val_X, val_y, random_state=123)

# Transform outcome to one-hot encoding
shuffled_val_y = to_categorical(shuffled_val_y)
In [25]:
# Make sure that the dimensions are as expected
shuffled_val_X.shape
Out[25]:
(481, 512, 512, 3)
In [26]:
# Example of an image to make sure they were converted right
plt.imshow(shuffled_val_X[0])
plt.grid(b=None)
plt.xticks([])
plt.yticks([])
plt.show()
In [27]:
# Make sure that the dimensions are as expected
shuffled_val_y.shape
Out[27]:
(481, 3)
In [28]:
# Make sure that the label is correct for the image
shuffled_val_y[0]
Out[28]:
array([0., 0., 1.], dtype=float32)

THIRD PART: EVALUATE NEURAL NETWORKS

CNNMCD (CNN architecture created by the authors)

In [29]:
## Define the initial input
initial_input = Input(shape = train_X.shape[1:])

## Add convolutional and max pooling layers
x = Conv2D(filters = 64, kernel_size = (3,3), padding = 'same')(initial_input)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Conv2D(filters = 64, kernel_size = (3,3), padding = 'same', activation='relu')(x)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)

## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=96, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=128, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)    
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)

## Add convolutional and max pooling layers
x = Conv2D(filters = 128, kernel_size = (3,3), padding = 'same')(initial_input)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Conv2D(filters = 256, kernel_size = (3,3), padding = 'same', activation='relu')(x)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Conv2D(filters = 256, kernel_size = (3,3), padding = 'same', activation='relu')(x)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)

## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=256, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)    
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)

## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=256, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)    
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)

## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=256, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)    
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)

## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=256, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)    
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)

## Add global average pooling
x = GlobalAveragePooling2D()(x)

## Add the fully-connected layers
x = Dense(units=516, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=256, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=64, activation='relu')(x)
predictions = Dense(units=3, activation='softmax')(x)

# Define the model to be trained
model = Model(inputs=initial_input, outputs=predictions)

# Define the neural network optimizer
opt = Adam(lr = 0.0001)

# Compile the model
model.compile(optimizer = opt, loss = 'categorical_crossentropy', metrics = ['accuracy'])

# Fit the model in the training set
historyCNNMCD = model.fit(shuffled_train_X, shuffled_train_y, validation_data = [shuffled_val_X, shuffled_val_y], epochs = 50, batch_size = 32)


print('\n')
print('\n')
# AUC in train and validation set
auc_trainCNNMCD = roc_auc_score(shuffled_train_y, model.predict(shuffled_train_X))
print('The AUC in the train set is {:.4f}.'.format(auc_trainCNNMCD))
print('\n')
print('\n')
auc_validCNNMCD = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validCNNMCD))

print('\n')
print('\n')
print('\n')
print('\n')

# Figure size and colors
mpl.rcParams['figure.figsize'] = (20,24)
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='lightgreen'
plt.rcParams['figure.edgecolor']='black'

# Plot history of loss during training
plt.plot(historyCNNMCD.history['loss'], label='Train', color='red')
plt.plot(historyCNNMCD.history['val_loss'], label='Validation', color='blue')
plt.title('Loss in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Categorical cross-entropy loss', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=5)
plt.grid(b=None)
plt.show()

print('\n')
print('\n')
print('\n')
print('\n')

# Plot history of accuracy
plt.plot(historyCNNMCD.history['accuracy'], label='Train', color='red')
plt.plot(historyCNNMCD.history['val_accuracy'], label='Validation', color='blue')
plt.title('Accuracy in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Accuracy', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=1.1)
plt.grid(b=None)
plt.show()
Train on 8108 samples, validate on 481 samples
Epoch 1/50
8108/8108 [==============================] - 180s 22ms/sample - loss: 1.0948 - accuracy: 0.3648 - val_loss: 1.0976 - val_accuracy: 0.3306
Epoch 2/50
8108/8108 [==============================] - 169s 21ms/sample - loss: 1.0232 - accuracy: 0.4587 - val_loss: 1.1374 - val_accuracy: 0.3306
Epoch 3/50
8108/8108 [==============================] - 169s 21ms/sample - loss: 0.8216 - accuracy: 0.6217 - val_loss: 1.0984 - val_accuracy: 0.4823
Epoch 4/50
8108/8108 [==============================] - 165s 20ms/sample - loss: 0.6683 - accuracy: 0.7121 - val_loss: 1.4380 - val_accuracy: 0.4615
Epoch 5/50
8108/8108 [==============================] - 166s 20ms/sample - loss: 0.5467 - accuracy: 0.7760 - val_loss: 2.3152 - val_accuracy: 0.4262
Epoch 6/50
8108/8108 [==============================] - 166s 21ms/sample - loss: 0.4248 - accuracy: 0.8330 - val_loss: 1.8493 - val_accuracy: 0.4075
Epoch 7/50
8108/8108 [==============================] - 167s 21ms/sample - loss: 0.3231 - accuracy: 0.8815 - val_loss: 2.6807 - val_accuracy: 0.4116
Epoch 8/50
8108/8108 [==============================] - 166s 21ms/sample - loss: 0.2641 - accuracy: 0.9073 - val_loss: 2.7549 - val_accuracy: 0.4158
Epoch 9/50
8108/8108 [==============================] - 158s 20ms/sample - loss: 0.2038 - accuracy: 0.9261 - val_loss: 3.4472 - val_accuracy: 0.4740
Epoch 10/50
8108/8108 [==============================] - 163s 20ms/sample - loss: 0.1856 - accuracy: 0.9362 - val_loss: 2.4446 - val_accuracy: 0.5114
Epoch 11/50
8108/8108 [==============================] - 160s 20ms/sample - loss: 0.1467 - accuracy: 0.9493 - val_loss: 3.4872 - val_accuracy: 0.4615
Epoch 12/50
8108/8108 [==============================] - 157s 19ms/sample - loss: 0.1269 - accuracy: 0.9581 - val_loss: 2.7704 - val_accuracy: 0.5198
Epoch 13/50
8108/8108 [==============================] - 161s 20ms/sample - loss: 0.0956 - accuracy: 0.9679 - val_loss: 3.3667 - val_accuracy: 0.4407
Epoch 14/50
8108/8108 [==============================] - 161s 20ms/sample - loss: 0.0766 - accuracy: 0.9729 - val_loss: 4.2732 - val_accuracy: 0.3721
Epoch 15/50
8108/8108 [==============================] - 158s 19ms/sample - loss: 0.0783 - accuracy: 0.9748 - val_loss: 5.3528 - val_accuracy: 0.5073
Epoch 16/50
8108/8108 [==============================] - 157s 19ms/sample - loss: 0.0628 - accuracy: 0.9789 - val_loss: 3.4042 - val_accuracy: 0.4574
Epoch 17/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0702 - accuracy: 0.9777 - val_loss: 5.0784 - val_accuracy: 0.4636
Epoch 18/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0520 - accuracy: 0.9825 - val_loss: 4.3980 - val_accuracy: 0.5073
Epoch 19/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0442 - accuracy: 0.9864 - val_loss: 4.6937 - val_accuracy: 0.4657
Epoch 20/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0387 - accuracy: 0.9868 - val_loss: 3.9826 - val_accuracy: 0.5114
Epoch 21/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0450 - accuracy: 0.9858 - val_loss: 4.7025 - val_accuracy: 0.4387
Epoch 22/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0553 - accuracy: 0.9826 - val_loss: 5.7066 - val_accuracy: 0.5177
Epoch 23/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0460 - accuracy: 0.9864 - val_loss: 3.6804 - val_accuracy: 0.4948
Epoch 24/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0315 - accuracy: 0.9906 - val_loss: 4.2388 - val_accuracy: 0.5052
Epoch 25/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0318 - accuracy: 0.9901 - val_loss: 4.4303 - val_accuracy: 0.4844
Epoch 26/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0314 - accuracy: 0.9896 - val_loss: 4.5770 - val_accuracy: 0.4511
Epoch 27/50
8108/8108 [==============================] - 157s 19ms/sample - loss: 0.0309 - accuracy: 0.9909 - val_loss: 4.0583 - val_accuracy: 0.4699
Epoch 28/50
8108/8108 [==============================] - 157s 19ms/sample - loss: 0.0358 - accuracy: 0.9877 - val_loss: 4.8014 - val_accuracy: 0.4262
Epoch 29/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0302 - accuracy: 0.9910 - val_loss: 4.6751 - val_accuracy: 0.4324
Epoch 30/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0307 - accuracy: 0.9901 - val_loss: 5.2663 - val_accuracy: 0.3929
Epoch 31/50
8108/8108 [==============================] - 152s 19ms/sample - loss: 0.0255 - accuracy: 0.9921 - val_loss: 5.9204 - val_accuracy: 0.4449
Epoch 32/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0247 - accuracy: 0.9922 - val_loss: 5.2696 - val_accuracy: 0.4844
Epoch 33/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0103 - accuracy: 0.9963 - val_loss: 5.1959 - val_accuracy: 0.4782
Epoch 34/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0406 - accuracy: 0.9875 - val_loss: 3.8797 - val_accuracy: 0.5094
Epoch 35/50
8108/8108 [==============================] - 153s 19ms/sample - loss: 0.0248 - accuracy: 0.9922 - val_loss: 3.9202 - val_accuracy: 0.5135
Epoch 36/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0187 - accuracy: 0.9941 - val_loss: 5.4186 - val_accuracy: 0.4366
Epoch 37/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0290 - accuracy: 0.9906 - val_loss: 5.4818 - val_accuracy: 0.4511
Epoch 38/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0147 - accuracy: 0.9952 - val_loss: 3.5797 - val_accuracy: 0.5094
Epoch 39/50
8108/8108 [==============================] - 153s 19ms/sample - loss: 0.0266 - accuracy: 0.9919 - val_loss: 5.3169 - val_accuracy: 0.4179
Epoch 40/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0229 - accuracy: 0.9937 - val_loss: 3.7509 - val_accuracy: 0.4865
Epoch 41/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0159 - accuracy: 0.9958 - val_loss: 5.7549 - val_accuracy: 0.4969
Epoch 42/50
8108/8108 [==============================] - 152s 19ms/sample - loss: 0.0289 - accuracy: 0.9917 - val_loss: 4.6865 - val_accuracy: 0.4699
Epoch 43/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0113 - accuracy: 0.9964 - val_loss: 5.9384 - val_accuracy: 0.4491
Epoch 44/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0160 - accuracy: 0.9947 - val_loss: 5.6950 - val_accuracy: 0.5198
Epoch 45/50
8108/8108 [==============================] - 153s 19ms/sample - loss: 0.0270 - accuracy: 0.9917 - val_loss: 5.6194 - val_accuracy: 0.4179
Epoch 46/50
8108/8108 [==============================] - 156s 19ms/sample - loss: 0.0185 - accuracy: 0.9946 - val_loss: 4.1424 - val_accuracy: 0.5364
Epoch 47/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0164 - accuracy: 0.9949 - val_loss: 5.1806 - val_accuracy: 0.4511
Epoch 48/50
8108/8108 [==============================] - 152s 19ms/sample - loss: 0.0013 - accuracy: 0.9996 - val_loss: 7.2886 - val_accuracy: 0.4283
Epoch 49/50
8108/8108 [==============================] - 155s 19ms/sample - loss: 0.0186 - accuracy: 0.9954 - val_loss: 4.1215 - val_accuracy: 0.5613
Epoch 50/50
8108/8108 [==============================] - 154s 19ms/sample - loss: 0.0358 - accuracy: 0.9884 - val_loss: 5.9929 - val_accuracy: 0.4719




The AUC in the train set is 1.0000.




The AUC in the validation set is 0.7034.















In [30]:
# Generate predictions in the form of probabilities for the validation set
valCNNMCD = model.predict(shuffled_val_X, batch_size = 32)

# Generate the confusion matrix in the validation set
y_true = np.argmax(shuffled_val_y, axis=1)
y_predCNNMCD = np.argmax(valCNNMCD, axis=1)

# Confusion matrix
pd.DataFrame(confusion_matrix(y_true, y_predCNNMCD), index=['True: Normal', 'True: Diffuse CM', 'True: PVNH'], columns=['Prediction: Normal', 'Prediction: Diffuse CM', 'Prediction: PVNH']).T
Out[30]:
True: Normal True: Diffuse CM True: PVNH
Prediction: Normal 88 16 110
Prediction: Diffuse CM 33 109 35
Prediction: PVNH 38 22 30
In [31]:
# Calculate accuracy in the validation set
accuracy_CNNMCD = accuracy_score(y_true=y_true, y_pred=y_predCNNMCD)
print('The accuracy in the validation set is {:.4f}.'.format(accuracy_CNNMCD))
The accuracy in the validation set is 0.4719.
In [32]:
# Calculate AUC in the validation set
auc_CNNMCD = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validCNNMCD))
The AUC in the validation set is 0.7034.
In [33]:
# Classification report
print(classification_report(y_true, y_predCNNMCD, target_names=['Normal MRI', 'Diffuse CM', 'PVNH']))
              precision    recall  f1-score   support

  Normal MRI       0.41      0.55      0.47       159
  Diffuse CM       0.62      0.74      0.67       147
        PVNH       0.33      0.17      0.23       175

    accuracy                           0.47       481
   macro avg       0.45      0.49      0.46       481
weighted avg       0.45      0.47      0.44       481

Save model CNNMCD

In [34]:
# Serialize model to JSON
model_json = model.to_json()
with open("CNNMCD.json", "w") as json_file:
    json_file.write(model_json)
# Serialize weights to HDF5
model.save_weights("CNNMCD.h5")

Model visualization

In [35]:
# Visualize the structure and layers of the model
model.layers
Out[35]:
[<tensorflow.python.keras.engine.input_layer.InputLayer at 0x7f3388ef9f60>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335b03acf8>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f335b03af28>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f335b040c18>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f335b040cc0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335b0540f0>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f335b04aeb8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f335affbd68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f335affb9e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335b002c50>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f335b002cf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afaf6d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afb8dd8>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f335afd2eb8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afafa58>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afb8b00>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afc2ac8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afcaf28>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f335afd2c50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afdcc50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afeef28>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f335af828d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afdcfd0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afe5dd8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afeeef0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af77e80>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f335af8a3c8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af92b00>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af9bd30>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f335af35d68>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af92748>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af9b9e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afa3978>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335afaedd8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f335af35b00>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af40940>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af51dd8>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f335af64780>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af40e80>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af48c88>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af51da0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335af5cda0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f335af6c278>,
 <tensorflow.python.keras.layers.pooling.GlobalAveragePooling2D at 0x7f335aef55f8>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f335aef59b0>,
 <tensorflow.python.keras.layers.core.Dropout at 0x7f335aef54a8>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f335aeffe10>,
 <tensorflow.python.keras.layers.core.Dropout at 0x7f335aeff898>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f335af06898>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f335af19940>]
In [36]:
# Visualize the structure and layers of the model
print(model.summary())
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 512, 512, 3) 0                                            
__________________________________________________________________________________________________
conv2d_8 (Conv2D)               (None, 512, 512, 128 3584        input_1[0][0]                    
__________________________________________________________________________________________________
max_pooling2d_3 (MaxPooling2D)  (None, 256, 256, 128 0           conv2d_8[0][0]                   
__________________________________________________________________________________________________
batch_normalization_2 (BatchNor (None, 256, 256, 128 512         max_pooling2d_3[0][0]            
__________________________________________________________________________________________________
activation_2 (Activation)       (None, 256, 256, 128 0           batch_normalization_2[0][0]      
__________________________________________________________________________________________________
conv2d_9 (Conv2D)               (None, 256, 256, 256 295168      activation_2[0][0]               
__________________________________________________________________________________________________
max_pooling2d_4 (MaxPooling2D)  (None, 128, 128, 256 0           conv2d_9[0][0]                   
__________________________________________________________________________________________________
batch_normalization_3 (BatchNor (None, 128, 128, 256 1024        max_pooling2d_4[0][0]            
__________________________________________________________________________________________________
activation_3 (Activation)       (None, 128, 128, 256 0           batch_normalization_3[0][0]      
__________________________________________________________________________________________________
conv2d_10 (Conv2D)              (None, 128, 128, 256 590080      activation_3[0][0]               
__________________________________________________________________________________________________
max_pooling2d_5 (MaxPooling2D)  (None, 64, 64, 256)  0           conv2d_10[0][0]                  
__________________________________________________________________________________________________
conv2d_12 (Conv2D)              (None, 64, 64, 128)  32896       max_pooling2d_5[0][0]            
__________________________________________________________________________________________________
conv2d_14 (Conv2D)              (None, 64, 64, 64)   16448       max_pooling2d_5[0][0]            
__________________________________________________________________________________________________
max_pooling2d_6 (MaxPooling2D)  (None, 64, 64, 256)  0           max_pooling2d_5[0][0]            
__________________________________________________________________________________________________
conv2d_11 (Conv2D)              (None, 64, 64, 128)  32896       max_pooling2d_5[0][0]            
__________________________________________________________________________________________________
conv2d_13 (Conv2D)              (None, 64, 64, 256)  295168      conv2d_12[0][0]                  
__________________________________________________________________________________________________
conv2d_15 (Conv2D)              (None, 64, 64, 128)  204928      conv2d_14[0][0]                  
__________________________________________________________________________________________________
conv2d_16 (Conv2D)              (None, 64, 64, 64)   147520      max_pooling2d_6[0][0]            
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 64, 64, 576)  0           conv2d_11[0][0]                  
                                                                 conv2d_13[0][0]                  
                                                                 conv2d_15[0][0]                  
                                                                 conv2d_16[0][0]                  
__________________________________________________________________________________________________
conv2d_18 (Conv2D)              (None, 64, 64, 128)  73856       concatenate_1[0][0]              
__________________________________________________________________________________________________
conv2d_20 (Conv2D)              (None, 64, 64, 64)   36928       concatenate_1[0][0]              
__________________________________________________________________________________________________
max_pooling2d_7 (MaxPooling2D)  (None, 64, 64, 576)  0           concatenate_1[0][0]              
__________________________________________________________________________________________________
conv2d_17 (Conv2D)              (None, 64, 64, 128)  73856       concatenate_1[0][0]              
__________________________________________________________________________________________________
conv2d_19 (Conv2D)              (None, 64, 64, 256)  295168      conv2d_18[0][0]                  
__________________________________________________________________________________________________
conv2d_21 (Conv2D)              (None, 64, 64, 128)  204928      conv2d_20[0][0]                  
__________________________________________________________________________________________________
conv2d_22 (Conv2D)              (None, 64, 64, 64)   331840      max_pooling2d_7[0][0]            
__________________________________________________________________________________________________
concatenate_2 (Concatenate)     (None, 64, 64, 576)  0           conv2d_17[0][0]                  
                                                                 conv2d_19[0][0]                  
                                                                 conv2d_21[0][0]                  
                                                                 conv2d_22[0][0]                  
__________________________________________________________________________________________________
conv2d_24 (Conv2D)              (None, 64, 64, 128)  73856       concatenate_2[0][0]              
__________________________________________________________________________________________________
conv2d_26 (Conv2D)              (None, 64, 64, 64)   36928       concatenate_2[0][0]              
__________________________________________________________________________________________________
max_pooling2d_8 (MaxPooling2D)  (None, 64, 64, 576)  0           concatenate_2[0][0]              
__________________________________________________________________________________________________
conv2d_23 (Conv2D)              (None, 64, 64, 128)  73856       concatenate_2[0][0]              
__________________________________________________________________________________________________
conv2d_25 (Conv2D)              (None, 64, 64, 256)  295168      conv2d_24[0][0]                  
__________________________________________________________________________________________________
conv2d_27 (Conv2D)              (None, 64, 64, 128)  204928      conv2d_26[0][0]                  
__________________________________________________________________________________________________
conv2d_28 (Conv2D)              (None, 64, 64, 64)   331840      max_pooling2d_8[0][0]            
__________________________________________________________________________________________________
concatenate_3 (Concatenate)     (None, 64, 64, 576)  0           conv2d_23[0][0]                  
                                                                 conv2d_25[0][0]                  
                                                                 conv2d_27[0][0]                  
                                                                 conv2d_28[0][0]                  
__________________________________________________________________________________________________
conv2d_30 (Conv2D)              (None, 64, 64, 128)  73856       concatenate_3[0][0]              
__________________________________________________________________________________________________
conv2d_32 (Conv2D)              (None, 64, 64, 64)   36928       concatenate_3[0][0]              
__________________________________________________________________________________________________
max_pooling2d_9 (MaxPooling2D)  (None, 64, 64, 576)  0           concatenate_3[0][0]              
__________________________________________________________________________________________________
conv2d_29 (Conv2D)              (None, 64, 64, 128)  73856       concatenate_3[0][0]              
__________________________________________________________________________________________________
conv2d_31 (Conv2D)              (None, 64, 64, 256)  295168      conv2d_30[0][0]                  
__________________________________________________________________________________________________
conv2d_33 (Conv2D)              (None, 64, 64, 128)  204928      conv2d_32[0][0]                  
__________________________________________________________________________________________________
conv2d_34 (Conv2D)              (None, 64, 64, 64)   331840      max_pooling2d_9[0][0]            
__________________________________________________________________________________________________
concatenate_4 (Concatenate)     (None, 64, 64, 576)  0           conv2d_29[0][0]                  
                                                                 conv2d_31[0][0]                  
                                                                 conv2d_33[0][0]                  
                                                                 conv2d_34[0][0]                  
__________________________________________________________________________________________________
global_average_pooling2d (Globa (None, 576)          0           concatenate_4[0][0]              
__________________________________________________________________________________________________
dense (Dense)                   (None, 516)          297732      global_average_pooling2d[0][0]   
__________________________________________________________________________________________________
dropout (Dropout)               (None, 516)          0           dense[0][0]                      
__________________________________________________________________________________________________
dense_1 (Dense)                 (None, 256)          132352      dropout[0][0]                    
__________________________________________________________________________________________________
dropout_1 (Dropout)             (None, 256)          0           dense_1[0][0]                    
__________________________________________________________________________________________________
dense_2 (Dense)                 (None, 64)           16448       dropout_1[0][0]                  
__________________________________________________________________________________________________
dense_3 (Dense)                 (None, 3)            195         dense_2[0][0]                    
==================================================================================================
Total params: 5,116,679
Trainable params: 5,115,911
Non-trainable params: 768
__________________________________________________________________________________________________
None
In [37]:
# Define modifier to replace the sigmoid function of the last layer to a linear function
def model_modifier(m):
    m.layers[-1].activation = tf.keras.activations.linear

# Define losses functions. 0 is the index for a normal MRI
loss_normal = lambda output: K.mean(output[:, 0])

# Define losses functions. 1 is the index for a diffuse malformation of cortical development MRI
loss_diffuseMCD = lambda output: K.mean(output[:, 1])

# Define losses functions. 2 is the index for a PVNH MRI
loss_PVNH = lambda output: K.mean(output[:, 2])
    
# Create Gradcam object
gradcam = Gradcam(model, model_modifier)

# Create Saliency object
saliency = Saliency(model, model_modifier)

# Iterate through the MRIs in test set

# Set background to white color
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='white'
plt.rcParams['figure.edgecolor']='white'




print('\n \n' + '\033[1m' + 'EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)' + '\033[0m' + '\n')
print('\033[1m' + 'EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION, OR PERIVENTRICULAR NODULAR HETEROTOPIA) \n \nHIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI' + '\033[0m'+ '\n')


for i in range(20):
    
    # Print spaces to separate from the next image
    print('\n \n \n \n \n \n')
  
    # Print real classification of the image
    if y_true[i]==0:
        real_classification='Normal MRI'
    elif y_true[i]==1:
        real_classification='Diffuse MCD'
    else:
        real_classification='PVNH'
        
    print('\033[1m' + 'REAL CLASSIFICATION OF THE IMAGE: {}'.format(real_classification) + '\033[0m')
   
    # Print model classification and model probability of MCD
    if y_predCNNMCD[i]==0:
        predicted_classification='Normal MRI'
    elif y_predCNNMCD[i]==1:
        predicted_classification='Diffuse MCD'
    else:
        predicted_classification='PVNH'   
    
    print('\033[1m' + 'MODEL CLASSIFICATION OF THE IMAGE: {}'.format(predicted_classification)  + '\033[0m \n') 
    print('\033[1m' + '   Prob. Normal MRI: {:.4f}    '.format(valCNNMCD[i][0]) + 'Prob. Diffuse MCD: {:.4f}     '.format(valCNNMCD[i][1]), 'Prob. PVNH: {:.4f}'.format(valCNNMCD[i][2]) + '\033[0m')

    
    # Arrays to plot
    original_image=shuffled_val_X[i]
    list_heatmaps=[
        # GradCam heatmap for normal MRI
        normalize(gradcam(loss_normal, shuffled_val_X[i])),
        # GradCam heatmap for diffuse MCD
        normalize(gradcam(loss_diffuseMCD, shuffled_val_X[i])),
        # GradCam heatmap for PVNH
        normalize(gradcam(loss_PVNH, shuffled_val_X[i])),
        # Saliency heatmap for normal MRI
        normalize(saliency(loss_normal, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
        # Saliency heatmap for diffuse MCD
        normalize(saliency(loss_diffuseMCD, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
        # Saliency heatmap for PVNH
        normalize(saliency(loss_PVNH, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2))
    ]
    
    # Define figure
    f=plt.figure(figsize=(20, 8))

    # Define the image grid
    grid = ImageGrid(f, 111,
                nrows_ncols=(2, 3),
                axes_pad=0.05,
                share_all=True,
                cbar_location="right",
                cbar_mode=None,
                cbar_size="2%",
                cbar_pad=0.15)

    
    # Iterate over the graphs
    for j, axis in enumerate(grid):
        # Plot original 
        im=axis.imshow(original_image)
        im=axis.imshow(list_heatmaps[j][0], cmap='jet', alpha=0.5*valCNNMCD[i][j%3])
        im=axis.set_xticks([])
        im=axis.set_yticks([])
    
    # Create scalarmappable for obtaining the colorbar from 0 to 1
    sm = plt.cm.ScalarMappable(cmap='jet', norm=plt.Normalize(vmin=0, vmax=1))
    plt.colorbar(sm)
    plt.show()
 
EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)

EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION, OR PERIVENTRICULAR NODULAR HETEROTOPIA) 
 
HIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI


 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.4942    Prob. Diffuse MCD: 0.5013      Prob. PVNH: 0.0046
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.2244    Prob. Diffuse MCD: 0.7703      Prob. PVNH: 0.0053
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9381    Prob. Diffuse MCD: 0.0349      Prob. PVNH: 0.0271
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0530    Prob. Diffuse MCD: 0.9381      Prob. PVNH: 0.0090
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0238    Prob. Diffuse MCD: 0.9735      Prob. PVNH: 0.0027
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0002    Prob. Diffuse MCD: 0.9997      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9978    Prob. Diffuse MCD: 0.0022      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9980    Prob. Diffuse MCD: 0.0018      Prob. PVNH: 0.0003
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9944    Prob. Diffuse MCD: 0.0011      Prob. PVNH: 0.0045
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.2948      Prob. PVNH: 0.7052
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0033    Prob. Diffuse MCD: 0.9930      Prob. PVNH: 0.0036
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.8249      Prob. PVNH: 0.1751
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 1.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0005    Prob. Diffuse MCD: 0.7068      Prob. PVNH: 0.2927
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 1.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0204    Prob. Diffuse MCD: 0.9765      Prob. PVNH: 0.0031
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000

InceptionV3

Define the convolutional neural network

In [38]:
# Use InceptionV3 as the base model
base_model = tf.keras.applications.inception_v3.InceptionV3(layers=tf.keras.layers, weights='imagenet', include_top = False, input_shape=train_X.shape[1:])

# Get the output of the base model
x = base_model.output

# Add a 2D global average pooling layer
x = GlobalAveragePooling2D()(x)

## Add the fully-connected layers
x = Dense(units=516, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=256, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=64, activation='relu')(x)

# Ad a layer for multiclass classification
predictions = Dense(units = 3, activation = 'softmax')(x)

# Define the model to be trained
model = Model(inputs = base_model.input, outputs = predictions)

# Train only the last 20 layers in the base model
for layer in base_model.layers[:-20]:
    layer.trainable = False
for layer in base_model.layers[-20:]:
    layer.trainable = True
    
# Compile the model
opt = Adam(lr = 0.0001)
model.compile(optimizer = opt, loss = 'categorical_crossentropy', metrics = ['accuracy'])

# Fit and test the model in the validation set
historyInceptionV3 = model.fit(shuffled_train_X, shuffled_train_y, validation_data = [shuffled_val_X, shuffled_val_y], epochs = 50, batch_size = 32)

print('\n')
print('\n')
# AUC in train and validation set
auc_trainInceptionV3 = roc_auc_score(shuffled_train_y, model.predict(shuffled_train_X))
print('The AUC in the train set is {:.4f}.'.format(auc_trainInceptionV3))
print('\n')
print('\n')
auc_validInceptionV3 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validInceptionV3))

print('\n')
print('\n')
print('\n')
print('\n')

# Figure size and colors
mpl.rcParams['figure.figsize'] = (20,24)
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='lightgreen'
plt.rcParams['figure.edgecolor']='black'

# Plot history of loss during training
plt.plot(historyInceptionV3.history['loss'], label='Train', color='red')
plt.plot(historyInceptionV3.history['val_loss'], label='Validation', color='blue')
plt.title('Loss in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Categorical cross-entropy loss', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=5)
plt.grid(b=None)
plt.show()

print('\n')
print('\n')
print('\n')
print('\n')

# Plot history of accuracy
plt.plot(historyInceptionV3.history['accuracy'], label='Train', color='red')
plt.plot(historyInceptionV3.history['val_accuracy'], label='Validation', color='blue')
plt.title('Accuracy in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Accuracy', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=1.1)
plt.grid(b=None)
plt.show()
Train on 8108 samples, validate on 481 samples
Epoch 1/50
8108/8108 [==============================] - 42s 5ms/sample - loss: 0.8371 - accuracy: 0.6164 - val_loss: 1.0116 - val_accuracy: 0.5696
Epoch 2/50
8108/8108 [==============================] - 40s 5ms/sample - loss: 0.4553 - accuracy: 0.8234 - val_loss: 0.8393 - val_accuracy: 0.6902
Epoch 3/50
8108/8108 [==============================] - 41s 5ms/sample - loss: 0.2678 - accuracy: 0.9016 - val_loss: 1.0274 - val_accuracy: 0.6549
Epoch 4/50
8108/8108 [==============================] - 42s 5ms/sample - loss: 0.1593 - accuracy: 0.9424 - val_loss: 1.1886 - val_accuracy: 0.6258
Epoch 5/50
8108/8108 [==============================] - 40s 5ms/sample - loss: 0.1149 - accuracy: 0.9581 - val_loss: 1.3162 - val_accuracy: 0.6611
Epoch 6/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0743 - accuracy: 0.9747 - val_loss: 1.4558 - val_accuracy: 0.6694
Epoch 7/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0607 - accuracy: 0.9792 - val_loss: 1.5263 - val_accuracy: 0.6466
Epoch 8/50
8108/8108 [==============================] - 41s 5ms/sample - loss: 0.0420 - accuracy: 0.9863 - val_loss: 1.5624 - val_accuracy: 0.6653
Epoch 9/50
8108/8108 [==============================] - 36s 4ms/sample - loss: 0.0373 - accuracy: 0.9872 - val_loss: 1.8672 - val_accuracy: 0.6403
Epoch 10/50
8108/8108 [==============================] - 36s 4ms/sample - loss: 0.0329 - accuracy: 0.9904 - val_loss: 1.6060 - val_accuracy: 0.6902
Epoch 11/50
8108/8108 [==============================] - 39s 5ms/sample - loss: 0.0418 - accuracy: 0.9854 - val_loss: 1.9909 - val_accuracy: 0.6091
Epoch 12/50
8108/8108 [==============================] - 38s 5ms/sample - loss: 0.0305 - accuracy: 0.9885 - val_loss: 2.2335 - val_accuracy: 0.6445
Epoch 13/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0244 - accuracy: 0.9919 - val_loss: 1.8852 - val_accuracy: 0.6466
Epoch 14/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0220 - accuracy: 0.9904 - val_loss: 2.1735 - val_accuracy: 0.6403
Epoch 15/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0220 - accuracy: 0.9921 - val_loss: 2.6845 - val_accuracy: 0.5759
Epoch 16/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0173 - accuracy: 0.9933 - val_loss: 2.9636 - val_accuracy: 0.6611
Epoch 17/50
8108/8108 [==============================] - 40s 5ms/sample - loss: 0.0172 - accuracy: 0.9949 - val_loss: 2.2910 - val_accuracy: 0.6590
Epoch 18/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0265 - accuracy: 0.9905 - val_loss: 2.6702 - val_accuracy: 0.5842
Epoch 19/50
8108/8108 [==============================] - 36s 4ms/sample - loss: 0.0293 - accuracy: 0.9899 - val_loss: 2.3735 - val_accuracy: 0.6320
Epoch 20/50
8108/8108 [==============================] - 36s 4ms/sample - loss: 0.0297 - accuracy: 0.9904 - val_loss: 2.2259 - val_accuracy: 0.6299
Epoch 21/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0171 - accuracy: 0.9949 - val_loss: 2.1995 - val_accuracy: 0.6258
Epoch 22/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0178 - accuracy: 0.9936 - val_loss: 2.4971 - val_accuracy: 0.6320
Epoch 23/50
8108/8108 [==============================] - 40s 5ms/sample - loss: 0.0151 - accuracy: 0.9938 - val_loss: 2.5205 - val_accuracy: 0.6486
Epoch 24/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0151 - accuracy: 0.9946 - val_loss: 2.4740 - val_accuracy: 0.6507
Epoch 25/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0123 - accuracy: 0.9961 - val_loss: 2.4607 - val_accuracy: 0.6840
Epoch 26/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0271 - accuracy: 0.9914 - val_loss: 2.2165 - val_accuracy: 0.6528
Epoch 27/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0107 - accuracy: 0.9964 - val_loss: 2.6663 - val_accuracy: 0.6466
Epoch 28/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0167 - accuracy: 0.9946 - val_loss: 2.9330 - val_accuracy: 0.6258
Epoch 29/50
8108/8108 [==============================] - 36s 5ms/sample - loss: 0.0088 - accuracy: 0.9969 - val_loss: 2.5621 - val_accuracy: 0.5925
Epoch 30/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0137 - accuracy: 0.9956 - val_loss: 2.8963 - val_accuracy: 0.6486
Epoch 31/50
8108/8108 [==============================] - 40s 5ms/sample - loss: 0.0117 - accuracy: 0.9964 - val_loss: 2.9313 - val_accuracy: 0.5925
Epoch 32/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0127 - accuracy: 0.9957 - val_loss: 3.5106 - val_accuracy: 0.5593
Epoch 33/50
8108/8108 [==============================] - 36s 4ms/sample - loss: 0.0169 - accuracy: 0.9947 - val_loss: 2.5125 - val_accuracy: 0.6403
Epoch 34/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0113 - accuracy: 0.9963 - val_loss: 3.4000 - val_accuracy: 0.6029
Epoch 35/50
8108/8108 [==============================] - 36s 4ms/sample - loss: 0.0091 - accuracy: 0.9972 - val_loss: 2.1101 - val_accuracy: 0.6944
Epoch 36/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0076 - accuracy: 0.9974 - val_loss: 2.4562 - val_accuracy: 0.6549
Epoch 37/50
8108/8108 [==============================] - 38s 5ms/sample - loss: 0.0148 - accuracy: 0.9949 - val_loss: 2.7961 - val_accuracy: 0.6507
Epoch 38/50
8108/8108 [==============================] - 39s 5ms/sample - loss: 0.0123 - accuracy: 0.9958 - val_loss: 2.8453 - val_accuracy: 0.6757
Epoch 39/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0128 - accuracy: 0.9956 - val_loss: 2.3335 - val_accuracy: 0.6445
Epoch 40/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0154 - accuracy: 0.9951 - val_loss: 2.5405 - val_accuracy: 0.6424
Epoch 41/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0112 - accuracy: 0.9969 - val_loss: 3.1520 - val_accuracy: 0.6424
Epoch 42/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0125 - accuracy: 0.9954 - val_loss: 2.6042 - val_accuracy: 0.6403
Epoch 43/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0140 - accuracy: 0.9957 - val_loss: 2.5549 - val_accuracy: 0.6466
Epoch 44/50
8108/8108 [==============================] - 39s 5ms/sample - loss: 0.0090 - accuracy: 0.9965 - val_loss: 2.8494 - val_accuracy: 0.6362
Epoch 45/50
8108/8108 [==============================] - 38s 5ms/sample - loss: 0.0048 - accuracy: 0.9983 - val_loss: 3.0638 - val_accuracy: 0.6008
Epoch 46/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0196 - accuracy: 0.9930 - val_loss: 2.5955 - val_accuracy: 0.6216
Epoch 47/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0042 - accuracy: 0.9983 - val_loss: 3.0923 - val_accuracy: 0.6195
Epoch 48/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0075 - accuracy: 0.9972 - val_loss: 3.1216 - val_accuracy: 0.6112
Epoch 49/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0142 - accuracy: 0.9956 - val_loss: 3.9253 - val_accuracy: 0.5780
Epoch 50/50
8108/8108 [==============================] - 37s 5ms/sample - loss: 0.0066 - accuracy: 0.9975 - val_loss: 3.6358 - val_accuracy: 0.5551




The AUC in the train set is 1.0000.




The AUC in the validation set is 0.8029.















In [39]:
# Generate predictions in the form of probabilities for the validation set
valInceptionV3 = model.predict(shuffled_val_X, batch_size = 32)

# Generate the confusion matrix in the validation set
y_true = np.argmax(shuffled_val_y, axis=1)
y_predInceptionV3 = np.argmax(valInceptionV3, axis=1)

# Confusion matrix
pd.DataFrame(confusion_matrix(y_true, y_predInceptionV3), index=['True: Normal', 'True: Diffuse CM', 'True: PVNH'], columns=['Prediction: Normal', 'Prediction: Diffuse CM', 'Prediction: PVNH']).T
Out[39]:
True: Normal True: Diffuse CM True: PVNH
Prediction: Normal 117 32 70
Prediction: Diffuse CM 24 107 62
Prediction: PVNH 18 8 43
In [40]:
# Calculate accuracy in the validation set
accuracy_InceptionV3 = accuracy_score(y_true=y_true, y_pred=y_predInceptionV3)
print('The accuracy in the validation set is {:.4f}.'.format(accuracy_InceptionV3))
The accuracy in the validation set is 0.5551.
In [41]:
# Calculate AUC in the validation set
auc_validInceptionV3 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validInceptionV3))
The AUC in the validation set is 0.8029.
In [42]:
# Classification report
print(classification_report(y_true, y_predInceptionV3, target_names=['Normal MRI', 'Diffuse CM', 'PVNH']))
              precision    recall  f1-score   support

  Normal MRI       0.53      0.74      0.62       159
  Diffuse CM       0.55      0.73      0.63       147
        PVNH       0.62      0.25      0.35       175

    accuracy                           0.56       481
   macro avg       0.57      0.57      0.53       481
weighted avg       0.57      0.56      0.53       481

Save model InceptionV3

In [43]:
# Serialize model to JSON
model_json = model.to_json()
with open("InceptionV3.json", "w") as json_file:
    json_file.write(model_json)
# Serialize weights to HDF5
model.save_weights("InceptionV3.h5")

Model visualization

In [44]:
# Visualize the structure and layers of the model
model.layers
Out[44]:
[<tensorflow.python.keras.engine.input_layer.InputLayer at 0x7f3120644358>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120644550>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120644cf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31206449e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120644ef0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b0bcb38>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b0bc7b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f313c0675c0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f313c420da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f313c2c31d0>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f313c2c3358>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f313c2a2978>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f313c27f438>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310af12e10>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f335ae17d68>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f313c3bae48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f313c3ba0f0>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f313c3ba2b0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f313c050128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f313c051780>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f313c051cf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b3ec6d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f313c051438>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f313c30b518>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b0c2a90>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3391dc4668>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b096080>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f31204b7240>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f313c3bac18>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3391dc4390>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b0c2748>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31204b7208>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b3d6c18>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc1705198>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120495da0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31204b9518>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b3ec3c8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f313c0509e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3120495d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31204b9b00>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f31204b92b0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc1671128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120500780>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3120500cf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120541278>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120500438>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b3eed30>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120510a90>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b3d86d8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31204ee080>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f31204c9240>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31204b9860>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b3d8198>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120510748>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31204c9208>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120571dd8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b3f4ef0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31204f9da0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f312067e518>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3120571da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc16719e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31204f9d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f312067eb00>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f312067e2b0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120083128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f312062c780>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f312062ccf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3114152278>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312062c438>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3114157d30>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f312067aa90>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f312008a6d8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f312066c080>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f312043c240>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312067e860>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312008a198>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312067a748>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312043c208>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f311413bdd8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31200a4ef0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120463da0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310af23518>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f311413bda0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31200839e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3120463d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310af23b00>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f310af232b0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31200d0278>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31200d1c50>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31200c15f8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31200c10b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b1baeb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b19a908>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310af23860>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b19a048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310af15dd8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31201a16a0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310af15da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31201a1c18>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f31201a1358>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f31201a1a20>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc16ad828>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3114087da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3114087d68>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3114099240>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f311408acc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310af60668>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31201e5320>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310af60128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b431e80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310af51e80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b4316a0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310af63978>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b431160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310af630b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b41a860>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31205e7710>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b41add8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31205e7c88>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f31201516d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31201f9a58>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b41a518>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31205e73c8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120151da0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31201f9e10>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc16adb70>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120151a20>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31201416a0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31201e58d0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc16ae128>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f312013c160>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b2856a0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f310b2850f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312003d400>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120054da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f312004b748>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312004b208>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc16c1e80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc16f0978>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b273320>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc16f00b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b220b00>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b134630>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b21d0b8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b134ba8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b2207b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b1342e8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b532d30>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b148860>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b532cf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b148dd8>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f310b35b748>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b285400>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b5329e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b148518>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b35be10>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b273898>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b50d320>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b35ba90>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f300c098fd0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b273e80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b50d2e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b385080>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f300c0c6710>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f300c0c6160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312057c048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120586da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31205837f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120583080>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120108f28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3120104a20>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f300c0a33c8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120104160>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3114064ba8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310af046d8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3114033160>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310af04c50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3114064860>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310af04390>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b4dedd8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310aed4908>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b4deda0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310aed4ef0>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f300c0147f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f300c0c63c8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b4d1240>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310aed45c0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f300c014eb8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f300c0a3940>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b4d8c18>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f300c014b38>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b38cf28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f300c0a3f60>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b4d8fd0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f300c0360f0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b3ab7b8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f310b3ab208>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120727128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120736e48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f312071f898>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312071f128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310afd2550>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310afd2ac8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b393e80>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310afd2208>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b046c50>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310aeaf780>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b046c18>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310aeafcf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b046e80>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310aeaf438>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31140e5e80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b2a09b0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31140e5e48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b2a0f98>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f310b2c6898>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b3ab470>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31140b8320>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b2a0668>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b2c6e10>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b393780>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120709cc0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b2c6be0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b1d8fd0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b00a128>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3120727668>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b2b9198>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b1da860>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f310b1da2b0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31203d3f98>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b33def0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b33deb8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b333390>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b14fd30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b1686d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b1da5c0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b168198>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31203eaa58>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b14beb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31203e7048>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31206f7908>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31203ea4e0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31206f7048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31203d3cc0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31206d45c0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31203d3c88>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31206d4b38>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f31206d4278>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f31206d4940>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b2f5b70>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b0e1e80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b0e1e48>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b4af160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b0ea2e8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b453eb8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b04acf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b45d908>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b0536a0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b45d048>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b2ca320>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b053160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b080160>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f310afac908>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f310b4a9898>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b2ca588>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b2f57f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b077e80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310afac588>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f300c055780>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f310b4a9c50>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b2cab70>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b2f5d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b0808d0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310afacb00>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f300c055ef0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f310b4af710>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f310b2f54a8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f310afac240>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f300c05d6a0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f300c05d0f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc1584358>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc15ace48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc15b3c50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc15fd358>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc15b3160>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc1628b38>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc155f8d0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc16310f0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc155fe48>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc16287f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc15d4a20>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc155f588>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc150c7b8>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f2fc14c01d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f300c05d358>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc15d4d68>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc1580f98>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc150cb00>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc1537d30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc14e2a58>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc15fd8d0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc15d4d30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc1580f60>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc15150b8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc1537cf8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc14eb860>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc15fdeb8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2fc1584400>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2fc15379e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc14ebe48>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2fc14eb4a8>,
 <tensorflow.python.keras.layers.pooling.GlobalAveragePooling2D at 0x7f2fc1457518>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f3120573f60>,
 <tensorflow.python.keras.layers.core.Dropout at 0x7f2fc14575c0>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f2fc1422e48>,
 <tensorflow.python.keras.layers.core.Dropout at 0x7f2fc1422940>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f2fc140d0f0>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f2fc142d780>]
In [45]:
# Visualize the structure and layers of the model
print(model.summary())
Model: "model_61"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_2 (InputLayer)            [(None, 512, 512, 3) 0                                            
__________________________________________________________________________________________________
conv2d_35 (Conv2D)              (None, 255, 255, 32) 864         input_2[0][0]                    
__________________________________________________________________________________________________
batch_normalization_4 (BatchNor (None, 255, 255, 32) 96          conv2d_35[0][0]                  
__________________________________________________________________________________________________
activation_4 (Activation)       (None, 255, 255, 32) 0           batch_normalization_4[0][0]      
__________________________________________________________________________________________________
conv2d_36 (Conv2D)              (None, 253, 253, 32) 9216        activation_4[0][0]               
__________________________________________________________________________________________________
batch_normalization_5 (BatchNor (None, 253, 253, 32) 96          conv2d_36[0][0]                  
__________________________________________________________________________________________________
activation_5 (Activation)       (None, 253, 253, 32) 0           batch_normalization_5[0][0]      
__________________________________________________________________________________________________
conv2d_37 (Conv2D)              (None, 253, 253, 64) 18432       activation_5[0][0]               
__________________________________________________________________________________________________
batch_normalization_6 (BatchNor (None, 253, 253, 64) 192         conv2d_37[0][0]                  
__________________________________________________________________________________________________
activation_6 (Activation)       (None, 253, 253, 64) 0           batch_normalization_6[0][0]      
__________________________________________________________________________________________________
max_pooling2d_10 (MaxPooling2D) (None, 126, 126, 64) 0           activation_6[0][0]               
__________________________________________________________________________________________________
conv2d_38 (Conv2D)              (None, 126, 126, 80) 5120        max_pooling2d_10[0][0]           
__________________________________________________________________________________________________
batch_normalization_7 (BatchNor (None, 126, 126, 80) 240         conv2d_38[0][0]                  
__________________________________________________________________________________________________
activation_7 (Activation)       (None, 126, 126, 80) 0           batch_normalization_7[0][0]      
__________________________________________________________________________________________________
conv2d_39 (Conv2D)              (None, 124, 124, 192 138240      activation_7[0][0]               
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None, 124, 124, 192 576         conv2d_39[0][0]                  
__________________________________________________________________________________________________
activation_8 (Activation)       (None, 124, 124, 192 0           batch_normalization_8[0][0]      
__________________________________________________________________________________________________
max_pooling2d_11 (MaxPooling2D) (None, 61, 61, 192)  0           activation_8[0][0]               
__________________________________________________________________________________________________
conv2d_43 (Conv2D)              (None, 61, 61, 64)   12288       max_pooling2d_11[0][0]           
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None, 61, 61, 64)   192         conv2d_43[0][0]                  
__________________________________________________________________________________________________
activation_12 (Activation)      (None, 61, 61, 64)   0           batch_normalization_12[0][0]     
__________________________________________________________________________________________________
conv2d_41 (Conv2D)              (None, 61, 61, 48)   9216        max_pooling2d_11[0][0]           
__________________________________________________________________________________________________
conv2d_44 (Conv2D)              (None, 61, 61, 96)   55296       activation_12[0][0]              
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 61, 61, 48)   144         conv2d_41[0][0]                  
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None, 61, 61, 96)   288         conv2d_44[0][0]                  
__________________________________________________________________________________________________
activation_10 (Activation)      (None, 61, 61, 48)   0           batch_normalization_10[0][0]     
__________________________________________________________________________________________________
activation_13 (Activation)      (None, 61, 61, 96)   0           batch_normalization_13[0][0]     
__________________________________________________________________________________________________
average_pooling2d (AveragePooli (None, 61, 61, 192)  0           max_pooling2d_11[0][0]           
__________________________________________________________________________________________________
conv2d_40 (Conv2D)              (None, 61, 61, 64)   12288       max_pooling2d_11[0][0]           
__________________________________________________________________________________________________
conv2d_42 (Conv2D)              (None, 61, 61, 64)   76800       activation_10[0][0]              
__________________________________________________________________________________________________
conv2d_45 (Conv2D)              (None, 61, 61, 96)   82944       activation_13[0][0]              
__________________________________________________________________________________________________
conv2d_46 (Conv2D)              (None, 61, 61, 32)   6144        average_pooling2d[0][0]          
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None, 61, 61, 64)   192         conv2d_40[0][0]                  
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 61, 61, 64)   192         conv2d_42[0][0]                  
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None, 61, 61, 96)   288         conv2d_45[0][0]                  
__________________________________________________________________________________________________
batch_normalization_15 (BatchNo (None, 61, 61, 32)   96          conv2d_46[0][0]                  
__________________________________________________________________________________________________
activation_9 (Activation)       (None, 61, 61, 64)   0           batch_normalization_9[0][0]      
__________________________________________________________________________________________________
activation_11 (Activation)      (None, 61, 61, 64)   0           batch_normalization_11[0][0]     
__________________________________________________________________________________________________
activation_14 (Activation)      (None, 61, 61, 96)   0           batch_normalization_14[0][0]     
__________________________________________________________________________________________________
activation_15 (Activation)      (None, 61, 61, 32)   0           batch_normalization_15[0][0]     
__________________________________________________________________________________________________
mixed0 (Concatenate)            (None, 61, 61, 256)  0           activation_9[0][0]               
                                                                 activation_11[0][0]              
                                                                 activation_14[0][0]              
                                                                 activation_15[0][0]              
__________________________________________________________________________________________________
conv2d_50 (Conv2D)              (None, 61, 61, 64)   16384       mixed0[0][0]                     
__________________________________________________________________________________________________
batch_normalization_19 (BatchNo (None, 61, 61, 64)   192         conv2d_50[0][0]                  
__________________________________________________________________________________________________
activation_19 (Activation)      (None, 61, 61, 64)   0           batch_normalization_19[0][0]     
__________________________________________________________________________________________________
conv2d_48 (Conv2D)              (None, 61, 61, 48)   12288       mixed0[0][0]                     
__________________________________________________________________________________________________
conv2d_51 (Conv2D)              (None, 61, 61, 96)   55296       activation_19[0][0]              
__________________________________________________________________________________________________
batch_normalization_17 (BatchNo (None, 61, 61, 48)   144         conv2d_48[0][0]                  
__________________________________________________________________________________________________
batch_normalization_20 (BatchNo (None, 61, 61, 96)   288         conv2d_51[0][0]                  
__________________________________________________________________________________________________
activation_17 (Activation)      (None, 61, 61, 48)   0           batch_normalization_17[0][0]     
__________________________________________________________________________________________________
activation_20 (Activation)      (None, 61, 61, 96)   0           batch_normalization_20[0][0]     
__________________________________________________________________________________________________
average_pooling2d_1 (AveragePoo (None, 61, 61, 256)  0           mixed0[0][0]                     
__________________________________________________________________________________________________
conv2d_47 (Conv2D)              (None, 61, 61, 64)   16384       mixed0[0][0]                     
__________________________________________________________________________________________________
conv2d_49 (Conv2D)              (None, 61, 61, 64)   76800       activation_17[0][0]              
__________________________________________________________________________________________________
conv2d_52 (Conv2D)              (None, 61, 61, 96)   82944       activation_20[0][0]              
__________________________________________________________________________________________________
conv2d_53 (Conv2D)              (None, 61, 61, 64)   16384       average_pooling2d_1[0][0]        
__________________________________________________________________________________________________
batch_normalization_16 (BatchNo (None, 61, 61, 64)   192         conv2d_47[0][0]                  
__________________________________________________________________________________________________
batch_normalization_18 (BatchNo (None, 61, 61, 64)   192         conv2d_49[0][0]                  
__________________________________________________________________________________________________
batch_normalization_21 (BatchNo (None, 61, 61, 96)   288         conv2d_52[0][0]                  
__________________________________________________________________________________________________
batch_normalization_22 (BatchNo (None, 61, 61, 64)   192         conv2d_53[0][0]                  
__________________________________________________________________________________________________
activation_16 (Activation)      (None, 61, 61, 64)   0           batch_normalization_16[0][0]     
__________________________________________________________________________________________________
activation_18 (Activation)      (None, 61, 61, 64)   0           batch_normalization_18[0][0]     
__________________________________________________________________________________________________
activation_21 (Activation)      (None, 61, 61, 96)   0           batch_normalization_21[0][0]     
__________________________________________________________________________________________________
activation_22 (Activation)      (None, 61, 61, 64)   0           batch_normalization_22[0][0]     
__________________________________________________________________________________________________
mixed1 (Concatenate)            (None, 61, 61, 288)  0           activation_16[0][0]              
                                                                 activation_18[0][0]              
                                                                 activation_21[0][0]              
                                                                 activation_22[0][0]              
__________________________________________________________________________________________________
conv2d_57 (Conv2D)              (None, 61, 61, 64)   18432       mixed1[0][0]                     
__________________________________________________________________________________________________
batch_normalization_26 (BatchNo (None, 61, 61, 64)   192         conv2d_57[0][0]                  
__________________________________________________________________________________________________
activation_26 (Activation)      (None, 61, 61, 64)   0           batch_normalization_26[0][0]     
__________________________________________________________________________________________________
conv2d_55 (Conv2D)              (None, 61, 61, 48)   13824       mixed1[0][0]                     
__________________________________________________________________________________________________
conv2d_58 (Conv2D)              (None, 61, 61, 96)   55296       activation_26[0][0]              
__________________________________________________________________________________________________
batch_normalization_24 (BatchNo (None, 61, 61, 48)   144         conv2d_55[0][0]                  
__________________________________________________________________________________________________
batch_normalization_27 (BatchNo (None, 61, 61, 96)   288         conv2d_58[0][0]                  
__________________________________________________________________________________________________
activation_24 (Activation)      (None, 61, 61, 48)   0           batch_normalization_24[0][0]     
__________________________________________________________________________________________________
activation_27 (Activation)      (None, 61, 61, 96)   0           batch_normalization_27[0][0]     
__________________________________________________________________________________________________
average_pooling2d_2 (AveragePoo (None, 61, 61, 288)  0           mixed1[0][0]                     
__________________________________________________________________________________________________
conv2d_54 (Conv2D)              (None, 61, 61, 64)   18432       mixed1[0][0]                     
__________________________________________________________________________________________________
conv2d_56 (Conv2D)              (None, 61, 61, 64)   76800       activation_24[0][0]              
__________________________________________________________________________________________________
conv2d_59 (Conv2D)              (None, 61, 61, 96)   82944       activation_27[0][0]              
__________________________________________________________________________________________________
conv2d_60 (Conv2D)              (None, 61, 61, 64)   18432       average_pooling2d_2[0][0]        
__________________________________________________________________________________________________
batch_normalization_23 (BatchNo (None, 61, 61, 64)   192         conv2d_54[0][0]                  
__________________________________________________________________________________________________
batch_normalization_25 (BatchNo (None, 61, 61, 64)   192         conv2d_56[0][0]                  
__________________________________________________________________________________________________
batch_normalization_28 (BatchNo (None, 61, 61, 96)   288         conv2d_59[0][0]                  
__________________________________________________________________________________________________
batch_normalization_29 (BatchNo (None, 61, 61, 64)   192         conv2d_60[0][0]                  
__________________________________________________________________________________________________
activation_23 (Activation)      (None, 61, 61, 64)   0           batch_normalization_23[0][0]     
__________________________________________________________________________________________________
activation_25 (Activation)      (None, 61, 61, 64)   0           batch_normalization_25[0][0]     
__________________________________________________________________________________________________
activation_28 (Activation)      (None, 61, 61, 96)   0           batch_normalization_28[0][0]     
__________________________________________________________________________________________________
activation_29 (Activation)      (None, 61, 61, 64)   0           batch_normalization_29[0][0]     
__________________________________________________________________________________________________
mixed2 (Concatenate)            (None, 61, 61, 288)  0           activation_23[0][0]              
                                                                 activation_25[0][0]              
                                                                 activation_28[0][0]              
                                                                 activation_29[0][0]              
__________________________________________________________________________________________________
conv2d_62 (Conv2D)              (None, 61, 61, 64)   18432       mixed2[0][0]                     
__________________________________________________________________________________________________
batch_normalization_31 (BatchNo (None, 61, 61, 64)   192         conv2d_62[0][0]                  
__________________________________________________________________________________________________
activation_31 (Activation)      (None, 61, 61, 64)   0           batch_normalization_31[0][0]     
__________________________________________________________________________________________________
conv2d_63 (Conv2D)              (None, 61, 61, 96)   55296       activation_31[0][0]              
__________________________________________________________________________________________________
batch_normalization_32 (BatchNo (None, 61, 61, 96)   288         conv2d_63[0][0]                  
__________________________________________________________________________________________________
activation_32 (Activation)      (None, 61, 61, 96)   0           batch_normalization_32[0][0]     
__________________________________________________________________________________________________
conv2d_61 (Conv2D)              (None, 30, 30, 384)  995328      mixed2[0][0]                     
__________________________________________________________________________________________________
conv2d_64 (Conv2D)              (None, 30, 30, 96)   82944       activation_32[0][0]              
__________________________________________________________________________________________________
batch_normalization_30 (BatchNo (None, 30, 30, 384)  1152        conv2d_61[0][0]                  
__________________________________________________________________________________________________
batch_normalization_33 (BatchNo (None, 30, 30, 96)   288         conv2d_64[0][0]                  
__________________________________________________________________________________________________
activation_30 (Activation)      (None, 30, 30, 384)  0           batch_normalization_30[0][0]     
__________________________________________________________________________________________________
activation_33 (Activation)      (None, 30, 30, 96)   0           batch_normalization_33[0][0]     
__________________________________________________________________________________________________
max_pooling2d_12 (MaxPooling2D) (None, 30, 30, 288)  0           mixed2[0][0]                     
__________________________________________________________________________________________________
mixed3 (Concatenate)            (None, 30, 30, 768)  0           activation_30[0][0]              
                                                                 activation_33[0][0]              
                                                                 max_pooling2d_12[0][0]           
__________________________________________________________________________________________________
conv2d_69 (Conv2D)              (None, 30, 30, 128)  98304       mixed3[0][0]                     
__________________________________________________________________________________________________
batch_normalization_38 (BatchNo (None, 30, 30, 128)  384         conv2d_69[0][0]                  
__________________________________________________________________________________________________
activation_38 (Activation)      (None, 30, 30, 128)  0           batch_normalization_38[0][0]     
__________________________________________________________________________________________________
conv2d_70 (Conv2D)              (None, 30, 30, 128)  114688      activation_38[0][0]              
__________________________________________________________________________________________________
batch_normalization_39 (BatchNo (None, 30, 30, 128)  384         conv2d_70[0][0]                  
__________________________________________________________________________________________________
activation_39 (Activation)      (None, 30, 30, 128)  0           batch_normalization_39[0][0]     
__________________________________________________________________________________________________
conv2d_66 (Conv2D)              (None, 30, 30, 128)  98304       mixed3[0][0]                     
__________________________________________________________________________________________________
conv2d_71 (Conv2D)              (None, 30, 30, 128)  114688      activation_39[0][0]              
__________________________________________________________________________________________________
batch_normalization_35 (BatchNo (None, 30, 30, 128)  384         conv2d_66[0][0]                  
__________________________________________________________________________________________________
batch_normalization_40 (BatchNo (None, 30, 30, 128)  384         conv2d_71[0][0]                  
__________________________________________________________________________________________________
activation_35 (Activation)      (None, 30, 30, 128)  0           batch_normalization_35[0][0]     
__________________________________________________________________________________________________
activation_40 (Activation)      (None, 30, 30, 128)  0           batch_normalization_40[0][0]     
__________________________________________________________________________________________________
conv2d_67 (Conv2D)              (None, 30, 30, 128)  114688      activation_35[0][0]              
__________________________________________________________________________________________________
conv2d_72 (Conv2D)              (None, 30, 30, 128)  114688      activation_40[0][0]              
__________________________________________________________________________________________________
batch_normalization_36 (BatchNo (None, 30, 30, 128)  384         conv2d_67[0][0]                  
__________________________________________________________________________________________________
batch_normalization_41 (BatchNo (None, 30, 30, 128)  384         conv2d_72[0][0]                  
__________________________________________________________________________________________________
activation_36 (Activation)      (None, 30, 30, 128)  0           batch_normalization_36[0][0]     
__________________________________________________________________________________________________
activation_41 (Activation)      (None, 30, 30, 128)  0           batch_normalization_41[0][0]     
__________________________________________________________________________________________________
average_pooling2d_3 (AveragePoo (None, 30, 30, 768)  0           mixed3[0][0]                     
__________________________________________________________________________________________________
conv2d_65 (Conv2D)              (None, 30, 30, 192)  147456      mixed3[0][0]                     
__________________________________________________________________________________________________
conv2d_68 (Conv2D)              (None, 30, 30, 192)  172032      activation_36[0][0]              
__________________________________________________________________________________________________
conv2d_73 (Conv2D)              (None, 30, 30, 192)  172032      activation_41[0][0]              
__________________________________________________________________________________________________
conv2d_74 (Conv2D)              (None, 30, 30, 192)  147456      average_pooling2d_3[0][0]        
__________________________________________________________________________________________________
batch_normalization_34 (BatchNo (None, 30, 30, 192)  576         conv2d_65[0][0]                  
__________________________________________________________________________________________________
batch_normalization_37 (BatchNo (None, 30, 30, 192)  576         conv2d_68[0][0]                  
__________________________________________________________________________________________________
batch_normalization_42 (BatchNo (None, 30, 30, 192)  576         conv2d_73[0][0]                  
__________________________________________________________________________________________________
batch_normalization_43 (BatchNo (None, 30, 30, 192)  576         conv2d_74[0][0]                  
__________________________________________________________________________________________________
activation_34 (Activation)      (None, 30, 30, 192)  0           batch_normalization_34[0][0]     
__________________________________________________________________________________________________
activation_37 (Activation)      (None, 30, 30, 192)  0           batch_normalization_37[0][0]     
__________________________________________________________________________________________________
activation_42 (Activation)      (None, 30, 30, 192)  0           batch_normalization_42[0][0]     
__________________________________________________________________________________________________
activation_43 (Activation)      (None, 30, 30, 192)  0           batch_normalization_43[0][0]     
__________________________________________________________________________________________________
mixed4 (Concatenate)            (None, 30, 30, 768)  0           activation_34[0][0]              
                                                                 activation_37[0][0]              
                                                                 activation_42[0][0]              
                                                                 activation_43[0][0]              
__________________________________________________________________________________________________
conv2d_79 (Conv2D)              (None, 30, 30, 160)  122880      mixed4[0][0]                     
__________________________________________________________________________________________________
batch_normalization_48 (BatchNo (None, 30, 30, 160)  480         conv2d_79[0][0]                  
__________________________________________________________________________________________________
activation_48 (Activation)      (None, 30, 30, 160)  0           batch_normalization_48[0][0]     
__________________________________________________________________________________________________
conv2d_80 (Conv2D)              (None, 30, 30, 160)  179200      activation_48[0][0]              
__________________________________________________________________________________________________
batch_normalization_49 (BatchNo (None, 30, 30, 160)  480         conv2d_80[0][0]                  
__________________________________________________________________________________________________
activation_49 (Activation)      (None, 30, 30, 160)  0           batch_normalization_49[0][0]     
__________________________________________________________________________________________________
conv2d_76 (Conv2D)              (None, 30, 30, 160)  122880      mixed4[0][0]                     
__________________________________________________________________________________________________
conv2d_81 (Conv2D)              (None, 30, 30, 160)  179200      activation_49[0][0]              
__________________________________________________________________________________________________
batch_normalization_45 (BatchNo (None, 30, 30, 160)  480         conv2d_76[0][0]                  
__________________________________________________________________________________________________
batch_normalization_50 (BatchNo (None, 30, 30, 160)  480         conv2d_81[0][0]                  
__________________________________________________________________________________________________
activation_45 (Activation)      (None, 30, 30, 160)  0           batch_normalization_45[0][0]     
__________________________________________________________________________________________________
activation_50 (Activation)      (None, 30, 30, 160)  0           batch_normalization_50[0][0]     
__________________________________________________________________________________________________
conv2d_77 (Conv2D)              (None, 30, 30, 160)  179200      activation_45[0][0]              
__________________________________________________________________________________________________
conv2d_82 (Conv2D)              (None, 30, 30, 160)  179200      activation_50[0][0]              
__________________________________________________________________________________________________
batch_normalization_46 (BatchNo (None, 30, 30, 160)  480         conv2d_77[0][0]                  
__________________________________________________________________________________________________
batch_normalization_51 (BatchNo (None, 30, 30, 160)  480         conv2d_82[0][0]                  
__________________________________________________________________________________________________
activation_46 (Activation)      (None, 30, 30, 160)  0           batch_normalization_46[0][0]     
__________________________________________________________________________________________________
activation_51 (Activation)      (None, 30, 30, 160)  0           batch_normalization_51[0][0]     
__________________________________________________________________________________________________
average_pooling2d_4 (AveragePoo (None, 30, 30, 768)  0           mixed4[0][0]                     
__________________________________________________________________________________________________
conv2d_75 (Conv2D)              (None, 30, 30, 192)  147456      mixed4[0][0]                     
__________________________________________________________________________________________________
conv2d_78 (Conv2D)              (None, 30, 30, 192)  215040      activation_46[0][0]              
__________________________________________________________________________________________________
conv2d_83 (Conv2D)              (None, 30, 30, 192)  215040      activation_51[0][0]              
__________________________________________________________________________________________________
conv2d_84 (Conv2D)              (None, 30, 30, 192)  147456      average_pooling2d_4[0][0]        
__________________________________________________________________________________________________
batch_normalization_44 (BatchNo (None, 30, 30, 192)  576         conv2d_75[0][0]                  
__________________________________________________________________________________________________
batch_normalization_47 (BatchNo (None, 30, 30, 192)  576         conv2d_78[0][0]                  
__________________________________________________________________________________________________
batch_normalization_52 (BatchNo (None, 30, 30, 192)  576         conv2d_83[0][0]                  
__________________________________________________________________________________________________
batch_normalization_53 (BatchNo (None, 30, 30, 192)  576         conv2d_84[0][0]                  
__________________________________________________________________________________________________
activation_44 (Activation)      (None, 30, 30, 192)  0           batch_normalization_44[0][0]     
__________________________________________________________________________________________________
activation_47 (Activation)      (None, 30, 30, 192)  0           batch_normalization_47[0][0]     
__________________________________________________________________________________________________
activation_52 (Activation)      (None, 30, 30, 192)  0           batch_normalization_52[0][0]     
__________________________________________________________________________________________________
activation_53 (Activation)      (None, 30, 30, 192)  0           batch_normalization_53[0][0]     
__________________________________________________________________________________________________
mixed5 (Concatenate)            (None, 30, 30, 768)  0           activation_44[0][0]              
                                                                 activation_47[0][0]              
                                                                 activation_52[0][0]              
                                                                 activation_53[0][0]              
__________________________________________________________________________________________________
conv2d_89 (Conv2D)              (None, 30, 30, 160)  122880      mixed5[0][0]                     
__________________________________________________________________________________________________
batch_normalization_58 (BatchNo (None, 30, 30, 160)  480         conv2d_89[0][0]                  
__________________________________________________________________________________________________
activation_58 (Activation)      (None, 30, 30, 160)  0           batch_normalization_58[0][0]     
__________________________________________________________________________________________________
conv2d_90 (Conv2D)              (None, 30, 30, 160)  179200      activation_58[0][0]              
__________________________________________________________________________________________________
batch_normalization_59 (BatchNo (None, 30, 30, 160)  480         conv2d_90[0][0]                  
__________________________________________________________________________________________________
activation_59 (Activation)      (None, 30, 30, 160)  0           batch_normalization_59[0][0]     
__________________________________________________________________________________________________
conv2d_86 (Conv2D)              (None, 30, 30, 160)  122880      mixed5[0][0]                     
__________________________________________________________________________________________________
conv2d_91 (Conv2D)              (None, 30, 30, 160)  179200      activation_59[0][0]              
__________________________________________________________________________________________________
batch_normalization_55 (BatchNo (None, 30, 30, 160)  480         conv2d_86[0][0]                  
__________________________________________________________________________________________________
batch_normalization_60 (BatchNo (None, 30, 30, 160)  480         conv2d_91[0][0]                  
__________________________________________________________________________________________________
activation_55 (Activation)      (None, 30, 30, 160)  0           batch_normalization_55[0][0]     
__________________________________________________________________________________________________
activation_60 (Activation)      (None, 30, 30, 160)  0           batch_normalization_60[0][0]     
__________________________________________________________________________________________________
conv2d_87 (Conv2D)              (None, 30, 30, 160)  179200      activation_55[0][0]              
__________________________________________________________________________________________________
conv2d_92 (Conv2D)              (None, 30, 30, 160)  179200      activation_60[0][0]              
__________________________________________________________________________________________________
batch_normalization_56 (BatchNo (None, 30, 30, 160)  480         conv2d_87[0][0]                  
__________________________________________________________________________________________________
batch_normalization_61 (BatchNo (None, 30, 30, 160)  480         conv2d_92[0][0]                  
__________________________________________________________________________________________________
activation_56 (Activation)      (None, 30, 30, 160)  0           batch_normalization_56[0][0]     
__________________________________________________________________________________________________
activation_61 (Activation)      (None, 30, 30, 160)  0           batch_normalization_61[0][0]     
__________________________________________________________________________________________________
average_pooling2d_5 (AveragePoo (None, 30, 30, 768)  0           mixed5[0][0]                     
__________________________________________________________________________________________________
conv2d_85 (Conv2D)              (None, 30, 30, 192)  147456      mixed5[0][0]                     
__________________________________________________________________________________________________
conv2d_88 (Conv2D)              (None, 30, 30, 192)  215040      activation_56[0][0]              
__________________________________________________________________________________________________
conv2d_93 (Conv2D)              (None, 30, 30, 192)  215040      activation_61[0][0]              
__________________________________________________________________________________________________
conv2d_94 (Conv2D)              (None, 30, 30, 192)  147456      average_pooling2d_5[0][0]        
__________________________________________________________________________________________________
batch_normalization_54 (BatchNo (None, 30, 30, 192)  576         conv2d_85[0][0]                  
__________________________________________________________________________________________________
batch_normalization_57 (BatchNo (None, 30, 30, 192)  576         conv2d_88[0][0]                  
__________________________________________________________________________________________________
batch_normalization_62 (BatchNo (None, 30, 30, 192)  576         conv2d_93[0][0]                  
__________________________________________________________________________________________________
batch_normalization_63 (BatchNo (None, 30, 30, 192)  576         conv2d_94[0][0]                  
__________________________________________________________________________________________________
activation_54 (Activation)      (None, 30, 30, 192)  0           batch_normalization_54[0][0]     
__________________________________________________________________________________________________
activation_57 (Activation)      (None, 30, 30, 192)  0           batch_normalization_57[0][0]     
__________________________________________________________________________________________________
activation_62 (Activation)      (None, 30, 30, 192)  0           batch_normalization_62[0][0]     
__________________________________________________________________________________________________
activation_63 (Activation)      (None, 30, 30, 192)  0           batch_normalization_63[0][0]     
__________________________________________________________________________________________________
mixed6 (Concatenate)            (None, 30, 30, 768)  0           activation_54[0][0]              
                                                                 activation_57[0][0]              
                                                                 activation_62[0][0]              
                                                                 activation_63[0][0]              
__________________________________________________________________________________________________
conv2d_99 (Conv2D)              (None, 30, 30, 192)  147456      mixed6[0][0]                     
__________________________________________________________________________________________________
batch_normalization_68 (BatchNo (None, 30, 30, 192)  576         conv2d_99[0][0]                  
__________________________________________________________________________________________________
activation_68 (Activation)      (None, 30, 30, 192)  0           batch_normalization_68[0][0]     
__________________________________________________________________________________________________
conv2d_100 (Conv2D)             (None, 30, 30, 192)  258048      activation_68[0][0]              
__________________________________________________________________________________________________
batch_normalization_69 (BatchNo (None, 30, 30, 192)  576         conv2d_100[0][0]                 
__________________________________________________________________________________________________
activation_69 (Activation)      (None, 30, 30, 192)  0           batch_normalization_69[0][0]     
__________________________________________________________________________________________________
conv2d_96 (Conv2D)              (None, 30, 30, 192)  147456      mixed6[0][0]                     
__________________________________________________________________________________________________
conv2d_101 (Conv2D)             (None, 30, 30, 192)  258048      activation_69[0][0]              
__________________________________________________________________________________________________
batch_normalization_65 (BatchNo (None, 30, 30, 192)  576         conv2d_96[0][0]                  
__________________________________________________________________________________________________
batch_normalization_70 (BatchNo (None, 30, 30, 192)  576         conv2d_101[0][0]                 
__________________________________________________________________________________________________
activation_65 (Activation)      (None, 30, 30, 192)  0           batch_normalization_65[0][0]     
__________________________________________________________________________________________________
activation_70 (Activation)      (None, 30, 30, 192)  0           batch_normalization_70[0][0]     
__________________________________________________________________________________________________
conv2d_97 (Conv2D)              (None, 30, 30, 192)  258048      activation_65[0][0]              
__________________________________________________________________________________________________
conv2d_102 (Conv2D)             (None, 30, 30, 192)  258048      activation_70[0][0]              
__________________________________________________________________________________________________
batch_normalization_66 (BatchNo (None, 30, 30, 192)  576         conv2d_97[0][0]                  
__________________________________________________________________________________________________
batch_normalization_71 (BatchNo (None, 30, 30, 192)  576         conv2d_102[0][0]                 
__________________________________________________________________________________________________
activation_66 (Activation)      (None, 30, 30, 192)  0           batch_normalization_66[0][0]     
__________________________________________________________________________________________________
activation_71 (Activation)      (None, 30, 30, 192)  0           batch_normalization_71[0][0]     
__________________________________________________________________________________________________
average_pooling2d_6 (AveragePoo (None, 30, 30, 768)  0           mixed6[0][0]                     
__________________________________________________________________________________________________
conv2d_95 (Conv2D)              (None, 30, 30, 192)  147456      mixed6[0][0]                     
__________________________________________________________________________________________________
conv2d_98 (Conv2D)              (None, 30, 30, 192)  258048      activation_66[0][0]              
__________________________________________________________________________________________________
conv2d_103 (Conv2D)             (None, 30, 30, 192)  258048      activation_71[0][0]              
__________________________________________________________________________________________________
conv2d_104 (Conv2D)             (None, 30, 30, 192)  147456      average_pooling2d_6[0][0]        
__________________________________________________________________________________________________
batch_normalization_64 (BatchNo (None, 30, 30, 192)  576         conv2d_95[0][0]                  
__________________________________________________________________________________________________
batch_normalization_67 (BatchNo (None, 30, 30, 192)  576         conv2d_98[0][0]                  
__________________________________________________________________________________________________
batch_normalization_72 (BatchNo (None, 30, 30, 192)  576         conv2d_103[0][0]                 
__________________________________________________________________________________________________
batch_normalization_73 (BatchNo (None, 30, 30, 192)  576         conv2d_104[0][0]                 
__________________________________________________________________________________________________
activation_64 (Activation)      (None, 30, 30, 192)  0           batch_normalization_64[0][0]     
__________________________________________________________________________________________________
activation_67 (Activation)      (None, 30, 30, 192)  0           batch_normalization_67[0][0]     
__________________________________________________________________________________________________
activation_72 (Activation)      (None, 30, 30, 192)  0           batch_normalization_72[0][0]     
__________________________________________________________________________________________________
activation_73 (Activation)      (None, 30, 30, 192)  0           batch_normalization_73[0][0]     
__________________________________________________________________________________________________
mixed7 (Concatenate)            (None, 30, 30, 768)  0           activation_64[0][0]              
                                                                 activation_67[0][0]              
                                                                 activation_72[0][0]              
                                                                 activation_73[0][0]              
__________________________________________________________________________________________________
conv2d_107 (Conv2D)             (None, 30, 30, 192)  147456      mixed7[0][0]                     
__________________________________________________________________________________________________
batch_normalization_76 (BatchNo (None, 30, 30, 192)  576         conv2d_107[0][0]                 
__________________________________________________________________________________________________
activation_76 (Activation)      (None, 30, 30, 192)  0           batch_normalization_76[0][0]     
__________________________________________________________________________________________________
conv2d_108 (Conv2D)             (None, 30, 30, 192)  258048      activation_76[0][0]              
__________________________________________________________________________________________________
batch_normalization_77 (BatchNo (None, 30, 30, 192)  576         conv2d_108[0][0]                 
__________________________________________________________________________________________________
activation_77 (Activation)      (None, 30, 30, 192)  0           batch_normalization_77[0][0]     
__________________________________________________________________________________________________
conv2d_105 (Conv2D)             (None, 30, 30, 192)  147456      mixed7[0][0]                     
__________________________________________________________________________________________________
conv2d_109 (Conv2D)             (None, 30, 30, 192)  258048      activation_77[0][0]              
__________________________________________________________________________________________________
batch_normalization_74 (BatchNo (None, 30, 30, 192)  576         conv2d_105[0][0]                 
__________________________________________________________________________________________________
batch_normalization_78 (BatchNo (None, 30, 30, 192)  576         conv2d_109[0][0]                 
__________________________________________________________________________________________________
activation_74 (Activation)      (None, 30, 30, 192)  0           batch_normalization_74[0][0]     
__________________________________________________________________________________________________
activation_78 (Activation)      (None, 30, 30, 192)  0           batch_normalization_78[0][0]     
__________________________________________________________________________________________________
conv2d_106 (Conv2D)             (None, 14, 14, 320)  552960      activation_74[0][0]              
__________________________________________________________________________________________________
conv2d_110 (Conv2D)             (None, 14, 14, 192)  331776      activation_78[0][0]              
__________________________________________________________________________________________________
batch_normalization_75 (BatchNo (None, 14, 14, 320)  960         conv2d_106[0][0]                 
__________________________________________________________________________________________________
batch_normalization_79 (BatchNo (None, 14, 14, 192)  576         conv2d_110[0][0]                 
__________________________________________________________________________________________________
activation_75 (Activation)      (None, 14, 14, 320)  0           batch_normalization_75[0][0]     
__________________________________________________________________________________________________
activation_79 (Activation)      (None, 14, 14, 192)  0           batch_normalization_79[0][0]     
__________________________________________________________________________________________________
max_pooling2d_13 (MaxPooling2D) (None, 14, 14, 768)  0           mixed7[0][0]                     
__________________________________________________________________________________________________
mixed8 (Concatenate)            (None, 14, 14, 1280) 0           activation_75[0][0]              
                                                                 activation_79[0][0]              
                                                                 max_pooling2d_13[0][0]           
__________________________________________________________________________________________________
conv2d_115 (Conv2D)             (None, 14, 14, 448)  573440      mixed8[0][0]                     
__________________________________________________________________________________________________
batch_normalization_84 (BatchNo (None, 14, 14, 448)  1344        conv2d_115[0][0]                 
__________________________________________________________________________________________________
activation_84 (Activation)      (None, 14, 14, 448)  0           batch_normalization_84[0][0]     
__________________________________________________________________________________________________
conv2d_112 (Conv2D)             (None, 14, 14, 384)  491520      mixed8[0][0]                     
__________________________________________________________________________________________________
conv2d_116 (Conv2D)             (None, 14, 14, 384)  1548288     activation_84[0][0]              
__________________________________________________________________________________________________
batch_normalization_81 (BatchNo (None, 14, 14, 384)  1152        conv2d_112[0][0]                 
__________________________________________________________________________________________________
batch_normalization_85 (BatchNo (None, 14, 14, 384)  1152        conv2d_116[0][0]                 
__________________________________________________________________________________________________
activation_81 (Activation)      (None, 14, 14, 384)  0           batch_normalization_81[0][0]     
__________________________________________________________________________________________________
activation_85 (Activation)      (None, 14, 14, 384)  0           batch_normalization_85[0][0]     
__________________________________________________________________________________________________
conv2d_113 (Conv2D)             (None, 14, 14, 384)  442368      activation_81[0][0]              
__________________________________________________________________________________________________
conv2d_114 (Conv2D)             (None, 14, 14, 384)  442368      activation_81[0][0]              
__________________________________________________________________________________________________
conv2d_117 (Conv2D)             (None, 14, 14, 384)  442368      activation_85[0][0]              
__________________________________________________________________________________________________
conv2d_118 (Conv2D)             (None, 14, 14, 384)  442368      activation_85[0][0]              
__________________________________________________________________________________________________
average_pooling2d_7 (AveragePoo (None, 14, 14, 1280) 0           mixed8[0][0]                     
__________________________________________________________________________________________________
conv2d_111 (Conv2D)             (None, 14, 14, 320)  409600      mixed8[0][0]                     
__________________________________________________________________________________________________
batch_normalization_82 (BatchNo (None, 14, 14, 384)  1152        conv2d_113[0][0]                 
__________________________________________________________________________________________________
batch_normalization_83 (BatchNo (None, 14, 14, 384)  1152        conv2d_114[0][0]                 
__________________________________________________________________________________________________
batch_normalization_86 (BatchNo (None, 14, 14, 384)  1152        conv2d_117[0][0]                 
__________________________________________________________________________________________________
batch_normalization_87 (BatchNo (None, 14, 14, 384)  1152        conv2d_118[0][0]                 
__________________________________________________________________________________________________
conv2d_119 (Conv2D)             (None, 14, 14, 192)  245760      average_pooling2d_7[0][0]        
__________________________________________________________________________________________________
batch_normalization_80 (BatchNo (None, 14, 14, 320)  960         conv2d_111[0][0]                 
__________________________________________________________________________________________________
activation_82 (Activation)      (None, 14, 14, 384)  0           batch_normalization_82[0][0]     
__________________________________________________________________________________________________
activation_83 (Activation)      (None, 14, 14, 384)  0           batch_normalization_83[0][0]     
__________________________________________________________________________________________________
activation_86 (Activation)      (None, 14, 14, 384)  0           batch_normalization_86[0][0]     
__________________________________________________________________________________________________
activation_87 (Activation)      (None, 14, 14, 384)  0           batch_normalization_87[0][0]     
__________________________________________________________________________________________________
batch_normalization_88 (BatchNo (None, 14, 14, 192)  576         conv2d_119[0][0]                 
__________________________________________________________________________________________________
activation_80 (Activation)      (None, 14, 14, 320)  0           batch_normalization_80[0][0]     
__________________________________________________________________________________________________
mixed9_0 (Concatenate)          (None, 14, 14, 768)  0           activation_82[0][0]              
                                                                 activation_83[0][0]              
__________________________________________________________________________________________________
concatenate_5 (Concatenate)     (None, 14, 14, 768)  0           activation_86[0][0]              
                                                                 activation_87[0][0]              
__________________________________________________________________________________________________
activation_88 (Activation)      (None, 14, 14, 192)  0           batch_normalization_88[0][0]     
__________________________________________________________________________________________________
mixed9 (Concatenate)            (None, 14, 14, 2048) 0           activation_80[0][0]              
                                                                 mixed9_0[0][0]                   
                                                                 concatenate_5[0][0]              
                                                                 activation_88[0][0]              
__________________________________________________________________________________________________
conv2d_124 (Conv2D)             (None, 14, 14, 448)  917504      mixed9[0][0]                     
__________________________________________________________________________________________________
batch_normalization_93 (BatchNo (None, 14, 14, 448)  1344        conv2d_124[0][0]                 
__________________________________________________________________________________________________
activation_93 (Activation)      (None, 14, 14, 448)  0           batch_normalization_93[0][0]     
__________________________________________________________________________________________________
conv2d_121 (Conv2D)             (None, 14, 14, 384)  786432      mixed9[0][0]                     
__________________________________________________________________________________________________
conv2d_125 (Conv2D)             (None, 14, 14, 384)  1548288     activation_93[0][0]              
__________________________________________________________________________________________________
batch_normalization_90 (BatchNo (None, 14, 14, 384)  1152        conv2d_121[0][0]                 
__________________________________________________________________________________________________
batch_normalization_94 (BatchNo (None, 14, 14, 384)  1152        conv2d_125[0][0]                 
__________________________________________________________________________________________________
activation_90 (Activation)      (None, 14, 14, 384)  0           batch_normalization_90[0][0]     
__________________________________________________________________________________________________
activation_94 (Activation)      (None, 14, 14, 384)  0           batch_normalization_94[0][0]     
__________________________________________________________________________________________________
conv2d_122 (Conv2D)             (None, 14, 14, 384)  442368      activation_90[0][0]              
__________________________________________________________________________________________________
conv2d_123 (Conv2D)             (None, 14, 14, 384)  442368      activation_90[0][0]              
__________________________________________________________________________________________________
conv2d_126 (Conv2D)             (None, 14, 14, 384)  442368      activation_94[0][0]              
__________________________________________________________________________________________________
conv2d_127 (Conv2D)             (None, 14, 14, 384)  442368      activation_94[0][0]              
__________________________________________________________________________________________________
average_pooling2d_8 (AveragePoo (None, 14, 14, 2048) 0           mixed9[0][0]                     
__________________________________________________________________________________________________
conv2d_120 (Conv2D)             (None, 14, 14, 320)  655360      mixed9[0][0]                     
__________________________________________________________________________________________________
batch_normalization_91 (BatchNo (None, 14, 14, 384)  1152        conv2d_122[0][0]                 
__________________________________________________________________________________________________
batch_normalization_92 (BatchNo (None, 14, 14, 384)  1152        conv2d_123[0][0]                 
__________________________________________________________________________________________________
batch_normalization_95 (BatchNo (None, 14, 14, 384)  1152        conv2d_126[0][0]                 
__________________________________________________________________________________________________
batch_normalization_96 (BatchNo (None, 14, 14, 384)  1152        conv2d_127[0][0]                 
__________________________________________________________________________________________________
conv2d_128 (Conv2D)             (None, 14, 14, 192)  393216      average_pooling2d_8[0][0]        
__________________________________________________________________________________________________
batch_normalization_89 (BatchNo (None, 14, 14, 320)  960         conv2d_120[0][0]                 
__________________________________________________________________________________________________
activation_91 (Activation)      (None, 14, 14, 384)  0           batch_normalization_91[0][0]     
__________________________________________________________________________________________________
activation_92 (Activation)      (None, 14, 14, 384)  0           batch_normalization_92[0][0]     
__________________________________________________________________________________________________
activation_95 (Activation)      (None, 14, 14, 384)  0           batch_normalization_95[0][0]     
__________________________________________________________________________________________________
activation_96 (Activation)      (None, 14, 14, 384)  0           batch_normalization_96[0][0]     
__________________________________________________________________________________________________
batch_normalization_97 (BatchNo (None, 14, 14, 192)  576         conv2d_128[0][0]                 
__________________________________________________________________________________________________
activation_89 (Activation)      (None, 14, 14, 320)  0           batch_normalization_89[0][0]     
__________________________________________________________________________________________________
mixed9_1 (Concatenate)          (None, 14, 14, 768)  0           activation_91[0][0]              
                                                                 activation_92[0][0]              
__________________________________________________________________________________________________
concatenate_6 (Concatenate)     (None, 14, 14, 768)  0           activation_95[0][0]              
                                                                 activation_96[0][0]              
__________________________________________________________________________________________________
activation_97 (Activation)      (None, 14, 14, 192)  0           batch_normalization_97[0][0]     
__________________________________________________________________________________________________
mixed10 (Concatenate)           (None, 14, 14, 2048) 0           activation_89[0][0]              
                                                                 mixed9_1[0][0]                   
                                                                 concatenate_6[0][0]              
                                                                 activation_97[0][0]              
__________________________________________________________________________________________________
global_average_pooling2d_1 (Glo (None, 2048)         0           mixed10[0][0]                    
__________________________________________________________________________________________________
dense_4 (Dense)                 (None, 516)          1057284     global_average_pooling2d_1[0][0] 
__________________________________________________________________________________________________
dropout_2 (Dropout)             (None, 516)          0           dense_4[0][0]                    
__________________________________________________________________________________________________
dense_5 (Dense)                 (None, 256)          132352      dropout_2[0][0]                  
__________________________________________________________________________________________________
dropout_3 (Dropout)             (None, 256)          0           dense_5[0][0]                    
__________________________________________________________________________________________________
dense_6 (Dense)                 (None, 64)           16448       dropout_3[0][0]                  
__________________________________________________________________________________________________
dense_7 (Dense)                 (None, 3)            195         dense_6[0][0]                    
==================================================================================================
Total params: 23,009,063
Trainable params: 3,141,639
Non-trainable params: 19,867,424
__________________________________________________________________________________________________
None
In [46]:
# Define modifier to replace the sigmoid function of the last layer to a linear function
def model_modifier(m):
    m.layers[-1].activation = tf.keras.activations.linear

# Define losses functions. 0 is the index for a normal MRI
loss_normal = lambda output: K.mean(output[:, 0])

# Define losses functions. 1 is the index for a diffuse malformation of cortical development MRI
loss_diffuseMCD = lambda output: K.mean(output[:, 1])

# Define losses functions. 2 is the index for a PVNH MRI
loss_PVNH = lambda output: K.mean(output[:, 2])
    
# Create Gradcam object
gradcam = Gradcam(model, model_modifier)

# Create Saliency object
saliency = Saliency(model, model_modifier)

# Iterate through the MRIs in test set

# Set background to white color
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='white'
plt.rcParams['figure.edgecolor']='white'




print('\n \n' + '\033[1m' + 'EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)' + '\033[0m' + '\n')
print('\033[1m' + 'EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION, OR PERIVENTRICULAR NODULAR HETEROTOPIA) \n \nHIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI' + '\033[0m'+ '\n')


for i in range(20):
    
    # Print spaces to separate from the next image
    print('\n \n \n \n \n \n')
  
    # Print real classification of the image
    if y_true[i]==0:
        real_classification='Normal MRI'
    elif y_true[i]==1:
        real_classification='Diffuse MCD'
    else:
        real_classification='PVNH'
    print('\033[1m' + 'REAL CLASSIFICATION OF THE IMAGE: {}'.format(real_classification) + '\033[0m')
   
    # Print model classification and model probability of MCD
    if y_predInceptionV3[i]==0:
        predicted_classification='Normal MRI'
    elif y_predInceptionV3[i]==1:
        predicted_classification='Diffuse MCD'
    else:
        predicted_classification='PVNH'   
    
    print('\033[1m' + 'MODEL CLASSIFICATION OF THE IMAGE: {}'.format(predicted_classification)  + '\033[0m \n') 
    print('\033[1m' + '   Prob. Normal MRI: {:.4f}    '.format(valInceptionV3[i][0]) + 'Prob. Diffuse MCD: {:.4f}     '.format(valInceptionV3[i][1]), 'Prob. PVNH: {:.4f}'.format(valInceptionV3[i][2]) + '\033[0m')

    
    # Arrays to plot
    original_image=shuffled_val_X[i]
    list_heatmaps=[
        # GradCam heatmap for normal MRI
        normalize(gradcam(loss_normal, shuffled_val_X[i])),
        # GradCam heatmap for diffuse MCD
        normalize(gradcam(loss_diffuseMCD, shuffled_val_X[i])),
        # GradCam heatmap for PVNH
        normalize(gradcam(loss_PVNH, shuffled_val_X[i])),
        # Saliency heatmap for normal MRI
        normalize(saliency(loss_normal, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
        # Saliency heatmap for diffuse MCD
        normalize(saliency(loss_diffuseMCD, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
        # Saliency heatmap for PVNH
        normalize(saliency(loss_PVNH, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2))
    ]
    
    # Define figure
    f=plt.figure(figsize=(20, 8))

    # Define the image grid
    grid = ImageGrid(f, 111,
                nrows_ncols=(2, 3),
                axes_pad=0.05,
                share_all=True,
                cbar_location="right",
                cbar_mode=None,
                cbar_size="2%",
                cbar_pad=0.15)

    
    # Iterate over the graphs
    for j, axis in enumerate(grid):
        # Plot original 
        im=axis.imshow(original_image)
        im=axis.imshow(list_heatmaps[j][0], cmap='jet', alpha=0.5*valInceptionV3[i][j%3])
        im=axis.set_xticks([])
        im=axis.set_yticks([])
    
    # Create scalarmappable for obtaining the colorbar from 0 to 1
    sm = plt.cm.ScalarMappable(cmap='jet', norm=plt.Normalize(vmin=0, vmax=1))
    plt.colorbar(sm)
    plt.show()
 
EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)

EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION, OR PERIVENTRICULAR NODULAR HETEROTOPIA) 
 
HIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI


 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9834    Prob. Diffuse MCD: 0.0161      Prob. PVNH: 0.0005
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9974    Prob. Diffuse MCD: 0.0010      Prob. PVNH: 0.0015
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0040    Prob. Diffuse MCD: 0.9949      Prob. PVNH: 0.0011
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0092    Prob. Diffuse MCD: 0.2654      Prob. PVNH: 0.7255
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9998    Prob. Diffuse MCD: 0.0002      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.9994      Prob. PVNH: 0.0006
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9905    Prob. Diffuse MCD: 0.0065      Prob. PVNH: 0.0029
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.8498    Prob. Diffuse MCD: 0.1444      Prob. PVNH: 0.0058
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0004    Prob. Diffuse MCD: 0.9996      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.0002      Prob. PVNH: 0.9998
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.9986      Prob. PVNH: 0.0014
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000

ResNet50

Define the convolutional neural network

In [47]:
# Use ResNet50 as the base model
base_model = tf.keras.applications.resnet50.ResNet50(layers=tf.keras.layers, weights='imagenet', include_top = False, input_shape=train_X.shape[1:])

# Get the output of the base model
x = base_model.output

# Add a 2D global average pooling layer
x = GlobalAveragePooling2D()(x)

## Add the fully-connected layers
x = Dense(units=516, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=256, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=64, activation='relu')(x)

# Ad a layer for multiclass classification
predictions = Dense(units = 3, activation = 'softmax')(x)

# Define the model to be trained
model = Model(inputs = base_model.input, outputs = predictions)

# Train the last 20 layers in the base model
for layer in base_model.layers[:-20]:
    layer.trainable = False
for layer in base_model.layers[-20:]:
    layer.trainable = True
    
# Compile the model
opt = Adam(lr = 0.0001)
model.compile(optimizer = opt, loss = 'categorical_crossentropy', metrics = ['accuracy'])

# Fit and test the model in the validation set
historyResNet50 = model.fit(shuffled_train_X, shuffled_train_y, validation_data = [shuffled_val_X, shuffled_val_y], epochs = 50, batch_size = 32)




print('\n')
print('\n')
# AUC in train and validation set
auc_trainResNet50 = roc_auc_score(shuffled_train_y, model.predict(shuffled_train_X))
print('The AUC in the train set is {:.4f}.'.format(auc_trainResNet50))
print('\n')
print('\n')
auc_validResNet50 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validResNet50))

print('\n')
print('\n')
print('\n')
print('\n')

# Figure size and colors
mpl.rcParams['figure.figsize'] = (20,24)
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='lightgreen'
plt.rcParams['figure.edgecolor']='black'

# Plot history of loss during training
plt.plot(historyResNet50.history['loss'], label='Train', color='red')
plt.plot(historyResNet50.history['val_loss'], label='Validation', color='blue')
plt.title('Loss in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Categorical cross-entropy loss', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=5)
plt.grid(b=None)
plt.show()

print('\n')
print('\n')
print('\n')
print('\n')

# Plot history of accuracy
plt.plot(historyResNet50.history['accuracy'], label='Train', color='red')
plt.plot(historyResNet50.history['val_accuracy'], label='Validation', color='blue')
plt.title('Accuracy in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Accuracy', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=1.1)
plt.grid(b=None)
plt.show()
Train on 8108 samples, validate on 481 samples
Epoch 1/50
8108/8108 [==============================] - 51s 6ms/sample - loss: 1.0255 - accuracy: 0.4663 - val_loss: 0.9939 - val_accuracy: 0.5218
Epoch 2/50
8108/8108 [==============================] - 46s 6ms/sample - loss: 0.8383 - accuracy: 0.6084 - val_loss: 1.2956 - val_accuracy: 0.4116
Epoch 3/50
8108/8108 [==============================] - 52s 6ms/sample - loss: 0.7407 - accuracy: 0.6654 - val_loss: 1.2298 - val_accuracy: 0.5385
Epoch 4/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.6518 - accuracy: 0.7269 - val_loss: 1.0720 - val_accuracy: 0.4969
Epoch 5/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.5799 - accuracy: 0.7602 - val_loss: 5.7659 - val_accuracy: 0.4387
Epoch 6/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.5087 - accuracy: 0.7940 - val_loss: 1.2793 - val_accuracy: 0.5073
Epoch 7/50
8108/8108 [==============================] - 50s 6ms/sample - loss: 0.4570 - accuracy: 0.8222 - val_loss: 5.1467 - val_accuracy: 0.3721
Epoch 8/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.3856 - accuracy: 0.8529 - val_loss: 2.2167 - val_accuracy: 0.4532
Epoch 9/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.3407 - accuracy: 0.8709 - val_loss: 3.2033 - val_accuracy: 0.4699
Epoch 10/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.3134 - accuracy: 0.8767 - val_loss: 1.5844 - val_accuracy: 0.5468
Epoch 11/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.2564 - accuracy: 0.9054 - val_loss: 1.3802 - val_accuracy: 0.6320
Epoch 12/50
8108/8108 [==============================] - 51s 6ms/sample - loss: 0.2273 - accuracy: 0.9121 - val_loss: 2.2166 - val_accuracy: 0.4948
Epoch 13/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.1970 - accuracy: 0.9266 - val_loss: 1.6565 - val_accuracy: 0.6154
Epoch 14/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.1637 - accuracy: 0.9391 - val_loss: 3.6866 - val_accuracy: 0.4366
Epoch 15/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.1734 - accuracy: 0.9345 - val_loss: 2.6621 - val_accuracy: 0.4304
Epoch 16/50
8108/8108 [==============================] - 49s 6ms/sample - loss: 0.1475 - accuracy: 0.9478 - val_loss: 1.9873 - val_accuracy: 0.6112
Epoch 17/50
8108/8108 [==============================] - 49s 6ms/sample - loss: 0.1320 - accuracy: 0.9551 - val_loss: 2.2144 - val_accuracy: 0.5946
Epoch 18/50
8108/8108 [==============================] - 46s 6ms/sample - loss: 0.1076 - accuracy: 0.9620 - val_loss: 6.4756 - val_accuracy: 0.4283
Epoch 19/50
8108/8108 [==============================] - 46s 6ms/sample - loss: 0.1327 - accuracy: 0.9540 - val_loss: 1.6808 - val_accuracy: 0.5489
Epoch 20/50
8108/8108 [==============================] - 50s 6ms/sample - loss: 0.1020 - accuracy: 0.9656 - val_loss: 2.7403 - val_accuracy: 0.5821
Epoch 21/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0928 - accuracy: 0.9676 - val_loss: 1.8666 - val_accuracy: 0.6424
Epoch 22/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0846 - accuracy: 0.9719 - val_loss: 3.2685 - val_accuracy: 0.5073
Epoch 23/50
8108/8108 [==============================] - 51s 6ms/sample - loss: 0.0899 - accuracy: 0.9683 - val_loss: 2.7032 - val_accuracy: 0.4324
Epoch 24/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0817 - accuracy: 0.9710 - val_loss: 2.4362 - val_accuracy: 0.5613
Epoch 25/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0733 - accuracy: 0.9735 - val_loss: 14.8234 - val_accuracy: 0.3451
Epoch 26/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0600 - accuracy: 0.9790 - val_loss: 3.4563 - val_accuracy: 0.5405
Epoch 27/50
8108/8108 [==============================] - 50s 6ms/sample - loss: 0.0591 - accuracy: 0.9800 - val_loss: 2.5701 - val_accuracy: 0.5780
Epoch 28/50
8108/8108 [==============================] - 48s 6ms/sample - loss: 0.0619 - accuracy: 0.9784 - val_loss: 2.0870 - val_accuracy: 0.5676
Epoch 29/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0634 - accuracy: 0.9784 - val_loss: 3.4210 - val_accuracy: 0.4886
Epoch 30/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0476 - accuracy: 0.9829 - val_loss: 2.8726 - val_accuracy: 0.5031
Epoch 31/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0687 - accuracy: 0.9782 - val_loss: 3.0613 - val_accuracy: 0.4782
Epoch 32/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0577 - accuracy: 0.9801 - val_loss: 1.5425 - val_accuracy: 0.6757
Epoch 33/50
8108/8108 [==============================] - 49s 6ms/sample - loss: 0.0539 - accuracy: 0.9827 - val_loss: 3.6115 - val_accuracy: 0.5094
Epoch 34/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0477 - accuracy: 0.9837 - val_loss: 1.8065 - val_accuracy: 0.6757
Epoch 35/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0471 - accuracy: 0.9826 - val_loss: 2.1610 - val_accuracy: 0.6154
Epoch 36/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0513 - accuracy: 0.9826 - val_loss: 3.3357 - val_accuracy: 0.5489
Epoch 37/50
8108/8108 [==============================] - 51s 6ms/sample - loss: 0.0482 - accuracy: 0.9830 - val_loss: 3.0112 - val_accuracy: 0.5322
Epoch 38/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0434 - accuracy: 0.9873 - val_loss: 2.0698 - val_accuracy: 0.5322
Epoch 39/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0252 - accuracy: 0.9926 - val_loss: 3.9333 - val_accuracy: 0.5884
Epoch 40/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0424 - accuracy: 0.9838 - val_loss: 2.3058 - val_accuracy: 0.6341
Epoch 41/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0615 - accuracy: 0.9809 - val_loss: 9.5753 - val_accuracy: 0.4137
Epoch 42/50
8108/8108 [==============================] - 50s 6ms/sample - loss: 0.0503 - accuracy: 0.9833 - val_loss: 6.6045 - val_accuracy: 0.3534
Epoch 43/50
8108/8108 [==============================] - 48s 6ms/sample - loss: 0.0324 - accuracy: 0.9894 - val_loss: 3.5444 - val_accuracy: 0.4449
Epoch 44/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0360 - accuracy: 0.9898 - val_loss: 15.0606 - val_accuracy: 0.3909
Epoch 45/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0444 - accuracy: 0.9850 - val_loss: 2.4176 - val_accuracy: 0.6362
Epoch 46/50
8108/8108 [==============================] - 50s 6ms/sample - loss: 0.0389 - accuracy: 0.9878 - val_loss: 2.9852 - val_accuracy: 0.5509
Epoch 47/50
8108/8108 [==============================] - 48s 6ms/sample - loss: 0.0322 - accuracy: 0.9899 - val_loss: 2.5703 - val_accuracy: 0.6195
Epoch 48/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0261 - accuracy: 0.9910 - val_loss: 6.0748 - val_accuracy: 0.4096
Epoch 49/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0508 - accuracy: 0.9848 - val_loss: 2.6370 - val_accuracy: 0.5634
Epoch 50/50
8108/8108 [==============================] - 47s 6ms/sample - loss: 0.0324 - accuracy: 0.9899 - val_loss: 3.5810 - val_accuracy: 0.4699




The AUC in the train set is 0.9203.




The AUC in the validation set is 0.7205.















In [48]:
# Generate predictions in the form of probabilities for the validation set
valResNet50 = model.predict(shuffled_val_X, batch_size = 32)

# Generate the confusion matrix in the validation set
y_true = np.argmax(shuffled_val_y, axis=1)
y_predResNet50 = np.argmax(valResNet50, axis=1)

# Confusion matrix
pd.DataFrame(confusion_matrix(y_true, y_predResNet50), index=['True: Normal', 'True: Diffuse CM', 'True: PVNH'], columns=['Prediction: Normal', 'Prediction: Diffuse CM', 'Prediction: PVNH']).T
Out[48]:
True: Normal True: Diffuse CM True: PVNH
Prediction: Normal 128 84 134
Prediction: Diffuse CM 20 58 1
Prediction: PVNH 11 5 40
In [49]:
# Calculate accuracy in the validation set
accuracy_ResNet50 = accuracy_score(y_true=y_true, y_pred=y_predResNet50)
print('The accuracy in the validation set is {:.4f}.'.format(accuracy_ResNet50))
The accuracy in the validation set is 0.4699.
In [50]:
# Calculate AUC in the validation set
auc_validResNet50 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validResNet50))
The AUC in the validation set is 0.7205.
In [51]:
# Classification report
print(classification_report(y_true, y_predResNet50, target_names=['Normal MRI', 'Diffuse CM', 'PVNH']))
              precision    recall  f1-score   support

  Normal MRI       0.37      0.81      0.51       159
  Diffuse CM       0.73      0.39      0.51       147
        PVNH       0.71      0.23      0.35       175

    accuracy                           0.47       481
   macro avg       0.61      0.48      0.46       481
weighted avg       0.61      0.47      0.45       481

Save model ResNet50

In [52]:
# Serialize model to JSON
model_json = model.to_json()
with open("ResNet50.json", "w") as json_file:
    json_file.write(model_json)
# Serialize weights to HDF5
model.save_weights("ResNet50.h5")

Model visualization

In [53]:
# Visualize the structure and layers of the model
model.layers
Out[53]:
[<tensorflow.python.keras.engine.input_layer.InputLayer at 0x7f22340a18d0>,
 <tensorflow.python.keras.layers.convolutional.ZeroPadding2D at 0x7f22340a1828>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22340a1e80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22343bdd68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22343edd68>,
 <tensorflow.python.keras.layers.convolutional.ZeroPadding2D at 0x7f22343e9208>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f22343e9198>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22343004e0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2234301e80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f312033bba8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f312033be48>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f3120352e10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f3120361da0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f223432dc50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31203610f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2234301a20>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c51aa20>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f220c51a9e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c51ae48>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c51ae10>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f226c0c5d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f226c0f0048>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f226c0d01d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22344f0c88>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22344f0c50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22344f0940>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22344f8e80>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f3120265eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31202650b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120265748>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f312026beb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f312026be80>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f3120246588>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22646b2668>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22646b2630>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22646b29b0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f312028dda0>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f312028dd68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31202ac080>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31202bd860>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31202c8390>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f31202e8c18>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31202e8ef0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f226c092eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f226c09be48>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f31202ac128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f226c09b048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f31202bd898>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2264589ac8>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f2264589a90>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2264589ef0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2264589eb8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22645b3e10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f226403c588>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f226403c860>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2264068d30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2264068cf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22640689e8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22345d3f28>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f22345dcf60>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22345dc160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22345dc7f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223458bf60>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f223458bf28>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234592630>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223453e710>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f223453e6d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f223453ea58>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223456be48>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f223456be10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2234572160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22345721d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223451f940>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f223451f908>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f223451fbe0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223448ccc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2234493ba8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234493128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2234441828>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f22344417f0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2234441b70>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234474e10>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2234474dd8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22342e9198>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22342e0588>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223428ddd8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f223428dda0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234441c18>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22342970b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223446cc50>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223423f550>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f223424a048>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f223423f208>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f223423f898>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223426fc18>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f223426ffd0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234275048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22342217b8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2234221780>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234221b00>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22341d0ef0>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f22341d0eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22341d6208>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22341d6278>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22341839e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22341839b0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234183d30>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22341aed68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22341b8c50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22341b81d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22341648d0>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f2234164898>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2234164c18>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234164cc0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223410dcf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2234118eb8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234118080>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22340c5b38>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22340c5b00>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22340c5e80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22340f0dd8>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f22340f8d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22340f80b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22340f85f8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c7a5d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c7a5d30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c7b0438>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c6d9518>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c6e2048>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c6d91d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c605c50>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f220c605c18>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c605ef0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c60e780>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c3fa748>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c3fa710>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c3fa9e8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c426eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c426e80>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c42f1d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c3db630>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f220c3db5f8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c3db978>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c38fc18>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c38fbe0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c33bf60>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c33b390>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c366be0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c366ba8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c3dba20>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c366e48>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c387cf8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c312e80>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f220c31be10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c31b160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c31b6a0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c2c6e10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c2c6dd8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c2ce4e0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c23d5c0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c23d588>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c23d908>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c268cf8>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f220c268cc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c2689b0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c270080>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c21d7f0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c21d7b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c21da90>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c1c8f60>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c1c8f28>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c1d3278>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c17d6d8>,
 <tensorflow.python.keras.layers.merge.Add at 0x7f220c17d6a0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c17da20>,
 <tensorflow.python.keras.layers.pooling.GlobalAveragePooling2D at 0x7f220c1b3cf8>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f22340a19b0>,
 <tensorflow.python.keras.layers.core.Dropout at 0x7f220c1b3da0>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f220c084cc0>,
 <tensorflow.python.keras.layers.core.Dropout at 0x7f220c084e80>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f220c0f4588>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f220c090be0>]
In [54]:
# Visualize the structure and layers of the model
print(model.summary())
Model: "model_122"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_3 (InputLayer)            [(None, 512, 512, 3) 0                                            
__________________________________________________________________________________________________
conv1_pad (ZeroPadding2D)       (None, 518, 518, 3)  0           input_3[0][0]                    
__________________________________________________________________________________________________
conv1_conv (Conv2D)             (None, 256, 256, 64) 9472        conv1_pad[0][0]                  
__________________________________________________________________________________________________
conv1_bn (BatchNormalization)   (None, 256, 256, 64) 256         conv1_conv[0][0]                 
__________________________________________________________________________________________________
conv1_relu (Activation)         (None, 256, 256, 64) 0           conv1_bn[0][0]                   
__________________________________________________________________________________________________
pool1_pad (ZeroPadding2D)       (None, 258, 258, 64) 0           conv1_relu[0][0]                 
__________________________________________________________________________________________________
pool1_pool (MaxPooling2D)       (None, 128, 128, 64) 0           pool1_pad[0][0]                  
__________________________________________________________________________________________________
conv2_block1_1_conv (Conv2D)    (None, 128, 128, 64) 4160        pool1_pool[0][0]                 
__________________________________________________________________________________________________
conv2_block1_1_bn (BatchNormali (None, 128, 128, 64) 256         conv2_block1_1_conv[0][0]        
__________________________________________________________________________________________________
conv2_block1_1_relu (Activation (None, 128, 128, 64) 0           conv2_block1_1_bn[0][0]          
__________________________________________________________________________________________________
conv2_block1_2_conv (Conv2D)    (None, 128, 128, 64) 36928       conv2_block1_1_relu[0][0]        
__________________________________________________________________________________________________
conv2_block1_2_bn (BatchNormali (None, 128, 128, 64) 256         conv2_block1_2_conv[0][0]        
__________________________________________________________________________________________________
conv2_block1_2_relu (Activation (None, 128, 128, 64) 0           conv2_block1_2_bn[0][0]          
__________________________________________________________________________________________________
conv2_block1_0_conv (Conv2D)    (None, 128, 128, 256 16640       pool1_pool[0][0]                 
__________________________________________________________________________________________________
conv2_block1_3_conv (Conv2D)    (None, 128, 128, 256 16640       conv2_block1_2_relu[0][0]        
__________________________________________________________________________________________________
conv2_block1_0_bn (BatchNormali (None, 128, 128, 256 1024        conv2_block1_0_conv[0][0]        
__________________________________________________________________________________________________
conv2_block1_3_bn (BatchNormali (None, 128, 128, 256 1024        conv2_block1_3_conv[0][0]        
__________________________________________________________________________________________________
conv2_block1_add (Add)          (None, 128, 128, 256 0           conv2_block1_0_bn[0][0]          
                                                                 conv2_block1_3_bn[0][0]          
__________________________________________________________________________________________________
conv2_block1_out (Activation)   (None, 128, 128, 256 0           conv2_block1_add[0][0]           
__________________________________________________________________________________________________
conv2_block2_1_conv (Conv2D)    (None, 128, 128, 64) 16448       conv2_block1_out[0][0]           
__________________________________________________________________________________________________
conv2_block2_1_bn (BatchNormali (None, 128, 128, 64) 256         conv2_block2_1_conv[0][0]        
__________________________________________________________________________________________________
conv2_block2_1_relu (Activation (None, 128, 128, 64) 0           conv2_block2_1_bn[0][0]          
__________________________________________________________________________________________________
conv2_block2_2_conv (Conv2D)    (None, 128, 128, 64) 36928       conv2_block2_1_relu[0][0]        
__________________________________________________________________________________________________
conv2_block2_2_bn (BatchNormali (None, 128, 128, 64) 256         conv2_block2_2_conv[0][0]        
__________________________________________________________________________________________________
conv2_block2_2_relu (Activation (None, 128, 128, 64) 0           conv2_block2_2_bn[0][0]          
__________________________________________________________________________________________________
conv2_block2_3_conv (Conv2D)    (None, 128, 128, 256 16640       conv2_block2_2_relu[0][0]        
__________________________________________________________________________________________________
conv2_block2_3_bn (BatchNormali (None, 128, 128, 256 1024        conv2_block2_3_conv[0][0]        
__________________________________________________________________________________________________
conv2_block2_add (Add)          (None, 128, 128, 256 0           conv2_block1_out[0][0]           
                                                                 conv2_block2_3_bn[0][0]          
__________________________________________________________________________________________________
conv2_block2_out (Activation)   (None, 128, 128, 256 0           conv2_block2_add[0][0]           
__________________________________________________________________________________________________
conv2_block3_1_conv (Conv2D)    (None, 128, 128, 64) 16448       conv2_block2_out[0][0]           
__________________________________________________________________________________________________
conv2_block3_1_bn (BatchNormali (None, 128, 128, 64) 256         conv2_block3_1_conv[0][0]        
__________________________________________________________________________________________________
conv2_block3_1_relu (Activation (None, 128, 128, 64) 0           conv2_block3_1_bn[0][0]          
__________________________________________________________________________________________________
conv2_block3_2_conv (Conv2D)    (None, 128, 128, 64) 36928       conv2_block3_1_relu[0][0]        
__________________________________________________________________________________________________
conv2_block3_2_bn (BatchNormali (None, 128, 128, 64) 256         conv2_block3_2_conv[0][0]        
__________________________________________________________________________________________________
conv2_block3_2_relu (Activation (None, 128, 128, 64) 0           conv2_block3_2_bn[0][0]          
__________________________________________________________________________________________________
conv2_block3_3_conv (Conv2D)    (None, 128, 128, 256 16640       conv2_block3_2_relu[0][0]        
__________________________________________________________________________________________________
conv2_block3_3_bn (BatchNormali (None, 128, 128, 256 1024        conv2_block3_3_conv[0][0]        
__________________________________________________________________________________________________
conv2_block3_add (Add)          (None, 128, 128, 256 0           conv2_block2_out[0][0]           
                                                                 conv2_block3_3_bn[0][0]          
__________________________________________________________________________________________________
conv2_block3_out (Activation)   (None, 128, 128, 256 0           conv2_block3_add[0][0]           
__________________________________________________________________________________________________
conv3_block1_1_conv (Conv2D)    (None, 64, 64, 128)  32896       conv2_block3_out[0][0]           
__________________________________________________________________________________________________
conv3_block1_1_bn (BatchNormali (None, 64, 64, 128)  512         conv3_block1_1_conv[0][0]        
__________________________________________________________________________________________________
conv3_block1_1_relu (Activation (None, 64, 64, 128)  0           conv3_block1_1_bn[0][0]          
__________________________________________________________________________________________________
conv3_block1_2_conv (Conv2D)    (None, 64, 64, 128)  147584      conv3_block1_1_relu[0][0]        
__________________________________________________________________________________________________
conv3_block1_2_bn (BatchNormali (None, 64, 64, 128)  512         conv3_block1_2_conv[0][0]        
__________________________________________________________________________________________________
conv3_block1_2_relu (Activation (None, 64, 64, 128)  0           conv3_block1_2_bn[0][0]          
__________________________________________________________________________________________________
conv3_block1_0_conv (Conv2D)    (None, 64, 64, 512)  131584      conv2_block3_out[0][0]           
__________________________________________________________________________________________________
conv3_block1_3_conv (Conv2D)    (None, 64, 64, 512)  66048       conv3_block1_2_relu[0][0]        
__________________________________________________________________________________________________
conv3_block1_0_bn (BatchNormali (None, 64, 64, 512)  2048        conv3_block1_0_conv[0][0]        
__________________________________________________________________________________________________
conv3_block1_3_bn (BatchNormali (None, 64, 64, 512)  2048        conv3_block1_3_conv[0][0]        
__________________________________________________________________________________________________
conv3_block1_add (Add)          (None, 64, 64, 512)  0           conv3_block1_0_bn[0][0]          
                                                                 conv3_block1_3_bn[0][0]          
__________________________________________________________________________________________________
conv3_block1_out (Activation)   (None, 64, 64, 512)  0           conv3_block1_add[0][0]           
__________________________________________________________________________________________________
conv3_block2_1_conv (Conv2D)    (None, 64, 64, 128)  65664       conv3_block1_out[0][0]           
__________________________________________________________________________________________________
conv3_block2_1_bn (BatchNormali (None, 64, 64, 128)  512         conv3_block2_1_conv[0][0]        
__________________________________________________________________________________________________
conv3_block2_1_relu (Activation (None, 64, 64, 128)  0           conv3_block2_1_bn[0][0]          
__________________________________________________________________________________________________
conv3_block2_2_conv (Conv2D)    (None, 64, 64, 128)  147584      conv3_block2_1_relu[0][0]        
__________________________________________________________________________________________________
conv3_block2_2_bn (BatchNormali (None, 64, 64, 128)  512         conv3_block2_2_conv[0][0]        
__________________________________________________________________________________________________
conv3_block2_2_relu (Activation (None, 64, 64, 128)  0           conv3_block2_2_bn[0][0]          
__________________________________________________________________________________________________
conv3_block2_3_conv (Conv2D)    (None, 64, 64, 512)  66048       conv3_block2_2_relu[0][0]        
__________________________________________________________________________________________________
conv3_block2_3_bn (BatchNormali (None, 64, 64, 512)  2048        conv3_block2_3_conv[0][0]        
__________________________________________________________________________________________________
conv3_block2_add (Add)          (None, 64, 64, 512)  0           conv3_block1_out[0][0]           
                                                                 conv3_block2_3_bn[0][0]          
__________________________________________________________________________________________________
conv3_block2_out (Activation)   (None, 64, 64, 512)  0           conv3_block2_add[0][0]           
__________________________________________________________________________________________________
conv3_block3_1_conv (Conv2D)    (None, 64, 64, 128)  65664       conv3_block2_out[0][0]           
__________________________________________________________________________________________________
conv3_block3_1_bn (BatchNormali (None, 64, 64, 128)  512         conv3_block3_1_conv[0][0]        
__________________________________________________________________________________________________
conv3_block3_1_relu (Activation (None, 64, 64, 128)  0           conv3_block3_1_bn[0][0]          
__________________________________________________________________________________________________
conv3_block3_2_conv (Conv2D)    (None, 64, 64, 128)  147584      conv3_block3_1_relu[0][0]        
__________________________________________________________________________________________________
conv3_block3_2_bn (BatchNormali (None, 64, 64, 128)  512         conv3_block3_2_conv[0][0]        
__________________________________________________________________________________________________
conv3_block3_2_relu (Activation (None, 64, 64, 128)  0           conv3_block3_2_bn[0][0]          
__________________________________________________________________________________________________
conv3_block3_3_conv (Conv2D)    (None, 64, 64, 512)  66048       conv3_block3_2_relu[0][0]        
__________________________________________________________________________________________________
conv3_block3_3_bn (BatchNormali (None, 64, 64, 512)  2048        conv3_block3_3_conv[0][0]        
__________________________________________________________________________________________________
conv3_block3_add (Add)          (None, 64, 64, 512)  0           conv3_block2_out[0][0]           
                                                                 conv3_block3_3_bn[0][0]          
__________________________________________________________________________________________________
conv3_block3_out (Activation)   (None, 64, 64, 512)  0           conv3_block3_add[0][0]           
__________________________________________________________________________________________________
conv3_block4_1_conv (Conv2D)    (None, 64, 64, 128)  65664       conv3_block3_out[0][0]           
__________________________________________________________________________________________________
conv3_block4_1_bn (BatchNormali (None, 64, 64, 128)  512         conv3_block4_1_conv[0][0]        
__________________________________________________________________________________________________
conv3_block4_1_relu (Activation (None, 64, 64, 128)  0           conv3_block4_1_bn[0][0]          
__________________________________________________________________________________________________
conv3_block4_2_conv (Conv2D)    (None, 64, 64, 128)  147584      conv3_block4_1_relu[0][0]        
__________________________________________________________________________________________________
conv3_block4_2_bn (BatchNormali (None, 64, 64, 128)  512         conv3_block4_2_conv[0][0]        
__________________________________________________________________________________________________
conv3_block4_2_relu (Activation (None, 64, 64, 128)  0           conv3_block4_2_bn[0][0]          
__________________________________________________________________________________________________
conv3_block4_3_conv (Conv2D)    (None, 64, 64, 512)  66048       conv3_block4_2_relu[0][0]        
__________________________________________________________________________________________________
conv3_block4_3_bn (BatchNormali (None, 64, 64, 512)  2048        conv3_block4_3_conv[0][0]        
__________________________________________________________________________________________________
conv3_block4_add (Add)          (None, 64, 64, 512)  0           conv3_block3_out[0][0]           
                                                                 conv3_block4_3_bn[0][0]          
__________________________________________________________________________________________________
conv3_block4_out (Activation)   (None, 64, 64, 512)  0           conv3_block4_add[0][0]           
__________________________________________________________________________________________________
conv4_block1_1_conv (Conv2D)    (None, 32, 32, 256)  131328      conv3_block4_out[0][0]           
__________________________________________________________________________________________________
conv4_block1_1_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block1_1_conv[0][0]        
__________________________________________________________________________________________________
conv4_block1_1_relu (Activation (None, 32, 32, 256)  0           conv4_block1_1_bn[0][0]          
__________________________________________________________________________________________________
conv4_block1_2_conv (Conv2D)    (None, 32, 32, 256)  590080      conv4_block1_1_relu[0][0]        
__________________________________________________________________________________________________
conv4_block1_2_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block1_2_conv[0][0]        
__________________________________________________________________________________________________
conv4_block1_2_relu (Activation (None, 32, 32, 256)  0           conv4_block1_2_bn[0][0]          
__________________________________________________________________________________________________
conv4_block1_0_conv (Conv2D)    (None, 32, 32, 1024) 525312      conv3_block4_out[0][0]           
__________________________________________________________________________________________________
conv4_block1_3_conv (Conv2D)    (None, 32, 32, 1024) 263168      conv4_block1_2_relu[0][0]        
__________________________________________________________________________________________________
conv4_block1_0_bn (BatchNormali (None, 32, 32, 1024) 4096        conv4_block1_0_conv[0][0]        
__________________________________________________________________________________________________
conv4_block1_3_bn (BatchNormali (None, 32, 32, 1024) 4096        conv4_block1_3_conv[0][0]        
__________________________________________________________________________________________________
conv4_block1_add (Add)          (None, 32, 32, 1024) 0           conv4_block1_0_bn[0][0]          
                                                                 conv4_block1_3_bn[0][0]          
__________________________________________________________________________________________________
conv4_block1_out (Activation)   (None, 32, 32, 1024) 0           conv4_block1_add[0][0]           
__________________________________________________________________________________________________
conv4_block2_1_conv (Conv2D)    (None, 32, 32, 256)  262400      conv4_block1_out[0][0]           
__________________________________________________________________________________________________
conv4_block2_1_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block2_1_conv[0][0]        
__________________________________________________________________________________________________
conv4_block2_1_relu (Activation (None, 32, 32, 256)  0           conv4_block2_1_bn[0][0]          
__________________________________________________________________________________________________
conv4_block2_2_conv (Conv2D)    (None, 32, 32, 256)  590080      conv4_block2_1_relu[0][0]        
__________________________________________________________________________________________________
conv4_block2_2_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block2_2_conv[0][0]        
__________________________________________________________________________________________________
conv4_block2_2_relu (Activation (None, 32, 32, 256)  0           conv4_block2_2_bn[0][0]          
__________________________________________________________________________________________________
conv4_block2_3_conv (Conv2D)    (None, 32, 32, 1024) 263168      conv4_block2_2_relu[0][0]        
__________________________________________________________________________________________________
conv4_block2_3_bn (BatchNormali (None, 32, 32, 1024) 4096        conv4_block2_3_conv[0][0]        
__________________________________________________________________________________________________
conv4_block2_add (Add)          (None, 32, 32, 1024) 0           conv4_block1_out[0][0]           
                                                                 conv4_block2_3_bn[0][0]          
__________________________________________________________________________________________________
conv4_block2_out (Activation)   (None, 32, 32, 1024) 0           conv4_block2_add[0][0]           
__________________________________________________________________________________________________
conv4_block3_1_conv (Conv2D)    (None, 32, 32, 256)  262400      conv4_block2_out[0][0]           
__________________________________________________________________________________________________
conv4_block3_1_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block3_1_conv[0][0]        
__________________________________________________________________________________________________
conv4_block3_1_relu (Activation (None, 32, 32, 256)  0           conv4_block3_1_bn[0][0]          
__________________________________________________________________________________________________
conv4_block3_2_conv (Conv2D)    (None, 32, 32, 256)  590080      conv4_block3_1_relu[0][0]        
__________________________________________________________________________________________________
conv4_block3_2_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block3_2_conv[0][0]        
__________________________________________________________________________________________________
conv4_block3_2_relu (Activation (None, 32, 32, 256)  0           conv4_block3_2_bn[0][0]          
__________________________________________________________________________________________________
conv4_block3_3_conv (Conv2D)    (None, 32, 32, 1024) 263168      conv4_block3_2_relu[0][0]        
__________________________________________________________________________________________________
conv4_block3_3_bn (BatchNormali (None, 32, 32, 1024) 4096        conv4_block3_3_conv[0][0]        
__________________________________________________________________________________________________
conv4_block3_add (Add)          (None, 32, 32, 1024) 0           conv4_block2_out[0][0]           
                                                                 conv4_block3_3_bn[0][0]          
__________________________________________________________________________________________________
conv4_block3_out (Activation)   (None, 32, 32, 1024) 0           conv4_block3_add[0][0]           
__________________________________________________________________________________________________
conv4_block4_1_conv (Conv2D)    (None, 32, 32, 256)  262400      conv4_block3_out[0][0]           
__________________________________________________________________________________________________
conv4_block4_1_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block4_1_conv[0][0]        
__________________________________________________________________________________________________
conv4_block4_1_relu (Activation (None, 32, 32, 256)  0           conv4_block4_1_bn[0][0]          
__________________________________________________________________________________________________
conv4_block4_2_conv (Conv2D)    (None, 32, 32, 256)  590080      conv4_block4_1_relu[0][0]        
__________________________________________________________________________________________________
conv4_block4_2_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block4_2_conv[0][0]        
__________________________________________________________________________________________________
conv4_block4_2_relu (Activation (None, 32, 32, 256)  0           conv4_block4_2_bn[0][0]          
__________________________________________________________________________________________________
conv4_block4_3_conv (Conv2D)    (None, 32, 32, 1024) 263168      conv4_block4_2_relu[0][0]        
__________________________________________________________________________________________________
conv4_block4_3_bn (BatchNormali (None, 32, 32, 1024) 4096        conv4_block4_3_conv[0][0]        
__________________________________________________________________________________________________
conv4_block4_add (Add)          (None, 32, 32, 1024) 0           conv4_block3_out[0][0]           
                                                                 conv4_block4_3_bn[0][0]          
__________________________________________________________________________________________________
conv4_block4_out (Activation)   (None, 32, 32, 1024) 0           conv4_block4_add[0][0]           
__________________________________________________________________________________________________
conv4_block5_1_conv (Conv2D)    (None, 32, 32, 256)  262400      conv4_block4_out[0][0]           
__________________________________________________________________________________________________
conv4_block5_1_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block5_1_conv[0][0]        
__________________________________________________________________________________________________
conv4_block5_1_relu (Activation (None, 32, 32, 256)  0           conv4_block5_1_bn[0][0]          
__________________________________________________________________________________________________
conv4_block5_2_conv (Conv2D)    (None, 32, 32, 256)  590080      conv4_block5_1_relu[0][0]        
__________________________________________________________________________________________________
conv4_block5_2_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block5_2_conv[0][0]        
__________________________________________________________________________________________________
conv4_block5_2_relu (Activation (None, 32, 32, 256)  0           conv4_block5_2_bn[0][0]          
__________________________________________________________________________________________________
conv4_block5_3_conv (Conv2D)    (None, 32, 32, 1024) 263168      conv4_block5_2_relu[0][0]        
__________________________________________________________________________________________________
conv4_block5_3_bn (BatchNormali (None, 32, 32, 1024) 4096        conv4_block5_3_conv[0][0]        
__________________________________________________________________________________________________
conv4_block5_add (Add)          (None, 32, 32, 1024) 0           conv4_block4_out[0][0]           
                                                                 conv4_block5_3_bn[0][0]          
__________________________________________________________________________________________________
conv4_block5_out (Activation)   (None, 32, 32, 1024) 0           conv4_block5_add[0][0]           
__________________________________________________________________________________________________
conv4_block6_1_conv (Conv2D)    (None, 32, 32, 256)  262400      conv4_block5_out[0][0]           
__________________________________________________________________________________________________
conv4_block6_1_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block6_1_conv[0][0]        
__________________________________________________________________________________________________
conv4_block6_1_relu (Activation (None, 32, 32, 256)  0           conv4_block6_1_bn[0][0]          
__________________________________________________________________________________________________
conv4_block6_2_conv (Conv2D)    (None, 32, 32, 256)  590080      conv4_block6_1_relu[0][0]        
__________________________________________________________________________________________________
conv4_block6_2_bn (BatchNormali (None, 32, 32, 256)  1024        conv4_block6_2_conv[0][0]        
__________________________________________________________________________________________________
conv4_block6_2_relu (Activation (None, 32, 32, 256)  0           conv4_block6_2_bn[0][0]          
__________________________________________________________________________________________________
conv4_block6_3_conv (Conv2D)    (None, 32, 32, 1024) 263168      conv4_block6_2_relu[0][0]        
__________________________________________________________________________________________________
conv4_block6_3_bn (BatchNormali (None, 32, 32, 1024) 4096        conv4_block6_3_conv[0][0]        
__________________________________________________________________________________________________
conv4_block6_add (Add)          (None, 32, 32, 1024) 0           conv4_block5_out[0][0]           
                                                                 conv4_block6_3_bn[0][0]          
__________________________________________________________________________________________________
conv4_block6_out (Activation)   (None, 32, 32, 1024) 0           conv4_block6_add[0][0]           
__________________________________________________________________________________________________
conv5_block1_1_conv (Conv2D)    (None, 16, 16, 512)  524800      conv4_block6_out[0][0]           
__________________________________________________________________________________________________
conv5_block1_1_bn (BatchNormali (None, 16, 16, 512)  2048        conv5_block1_1_conv[0][0]        
__________________________________________________________________________________________________
conv5_block1_1_relu (Activation (None, 16, 16, 512)  0           conv5_block1_1_bn[0][0]          
__________________________________________________________________________________________________
conv5_block1_2_conv (Conv2D)    (None, 16, 16, 512)  2359808     conv5_block1_1_relu[0][0]        
__________________________________________________________________________________________________
conv5_block1_2_bn (BatchNormali (None, 16, 16, 512)  2048        conv5_block1_2_conv[0][0]        
__________________________________________________________________________________________________
conv5_block1_2_relu (Activation (None, 16, 16, 512)  0           conv5_block1_2_bn[0][0]          
__________________________________________________________________________________________________
conv5_block1_0_conv (Conv2D)    (None, 16, 16, 2048) 2099200     conv4_block6_out[0][0]           
__________________________________________________________________________________________________
conv5_block1_3_conv (Conv2D)    (None, 16, 16, 2048) 1050624     conv5_block1_2_relu[0][0]        
__________________________________________________________________________________________________
conv5_block1_0_bn (BatchNormali (None, 16, 16, 2048) 8192        conv5_block1_0_conv[0][0]        
__________________________________________________________________________________________________
conv5_block1_3_bn (BatchNormali (None, 16, 16, 2048) 8192        conv5_block1_3_conv[0][0]        
__________________________________________________________________________________________________
conv5_block1_add (Add)          (None, 16, 16, 2048) 0           conv5_block1_0_bn[0][0]          
                                                                 conv5_block1_3_bn[0][0]          
__________________________________________________________________________________________________
conv5_block1_out (Activation)   (None, 16, 16, 2048) 0           conv5_block1_add[0][0]           
__________________________________________________________________________________________________
conv5_block2_1_conv (Conv2D)    (None, 16, 16, 512)  1049088     conv5_block1_out[0][0]           
__________________________________________________________________________________________________
conv5_block2_1_bn (BatchNormali (None, 16, 16, 512)  2048        conv5_block2_1_conv[0][0]        
__________________________________________________________________________________________________
conv5_block2_1_relu (Activation (None, 16, 16, 512)  0           conv5_block2_1_bn[0][0]          
__________________________________________________________________________________________________
conv5_block2_2_conv (Conv2D)    (None, 16, 16, 512)  2359808     conv5_block2_1_relu[0][0]        
__________________________________________________________________________________________________
conv5_block2_2_bn (BatchNormali (None, 16, 16, 512)  2048        conv5_block2_2_conv[0][0]        
__________________________________________________________________________________________________
conv5_block2_2_relu (Activation (None, 16, 16, 512)  0           conv5_block2_2_bn[0][0]          
__________________________________________________________________________________________________
conv5_block2_3_conv (Conv2D)    (None, 16, 16, 2048) 1050624     conv5_block2_2_relu[0][0]        
__________________________________________________________________________________________________
conv5_block2_3_bn (BatchNormali (None, 16, 16, 2048) 8192        conv5_block2_3_conv[0][0]        
__________________________________________________________________________________________________
conv5_block2_add (Add)          (None, 16, 16, 2048) 0           conv5_block1_out[0][0]           
                                                                 conv5_block2_3_bn[0][0]          
__________________________________________________________________________________________________
conv5_block2_out (Activation)   (None, 16, 16, 2048) 0           conv5_block2_add[0][0]           
__________________________________________________________________________________________________
conv5_block3_1_conv (Conv2D)    (None, 16, 16, 512)  1049088     conv5_block2_out[0][0]           
__________________________________________________________________________________________________
conv5_block3_1_bn (BatchNormali (None, 16, 16, 512)  2048        conv5_block3_1_conv[0][0]        
__________________________________________________________________________________________________
conv5_block3_1_relu (Activation (None, 16, 16, 512)  0           conv5_block3_1_bn[0][0]          
__________________________________________________________________________________________________
conv5_block3_2_conv (Conv2D)    (None, 16, 16, 512)  2359808     conv5_block3_1_relu[0][0]        
__________________________________________________________________________________________________
conv5_block3_2_bn (BatchNormali (None, 16, 16, 512)  2048        conv5_block3_2_conv[0][0]        
__________________________________________________________________________________________________
conv5_block3_2_relu (Activation (None, 16, 16, 512)  0           conv5_block3_2_bn[0][0]          
__________________________________________________________________________________________________
conv5_block3_3_conv (Conv2D)    (None, 16, 16, 2048) 1050624     conv5_block3_2_relu[0][0]        
__________________________________________________________________________________________________
conv5_block3_3_bn (BatchNormali (None, 16, 16, 2048) 8192        conv5_block3_3_conv[0][0]        
__________________________________________________________________________________________________
conv5_block3_add (Add)          (None, 16, 16, 2048) 0           conv5_block2_out[0][0]           
                                                                 conv5_block3_3_bn[0][0]          
__________________________________________________________________________________________________
conv5_block3_out (Activation)   (None, 16, 16, 2048) 0           conv5_block3_add[0][0]           
__________________________________________________________________________________________________
global_average_pooling2d_2 (Glo (None, 2048)         0           conv5_block3_out[0][0]           
__________________________________________________________________________________________________
dense_8 (Dense)                 (None, 516)          1057284     global_average_pooling2d_2[0][0] 
__________________________________________________________________________________________________
dropout_4 (Dropout)             (None, 516)          0           dense_8[0][0]                    
__________________________________________________________________________________________________
dense_9 (Dense)                 (None, 256)          132352      dropout_4[0][0]                  
__________________________________________________________________________________________________
dropout_5 (Dropout)             (None, 256)          0           dense_9[0][0]                    
__________________________________________________________________________________________________
dense_10 (Dense)                (None, 64)           16448       dropout_5[0][0]                  
__________________________________________________________________________________________________
dense_11 (Dense)                (None, 3)            195         dense_10[0][0]                   
==================================================================================================
Total params: 24,793,991
Trainable params: 10,137,607
Non-trainable params: 14,656,384
__________________________________________________________________________________________________
None
In [55]:
# Define modifier to replace the sigmoid function of the last layer to a linear function
def model_modifier(m):
    m.layers[-1].activation = tf.keras.activations.linear

# Define losses functions. 0 is the index for a normal MRI
loss_normal = lambda output: K.mean(output[:, 0])

# Define losses functions. 1 is the index for a diffuse malformation of cortical development MRI
loss_diffuseMCD = lambda output: K.mean(output[:, 1])

# Define losses functions. 2 is the index for a PVNH MRI
loss_PVNH = lambda output: K.mean(output[:, 2])
    
# Create Gradcam object
gradcam = Gradcam(model, model_modifier)

# Create Saliency object
saliency = Saliency(model, model_modifier)

# Iterate through the MRIs in test set

# Set background to white color
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='white'
plt.rcParams['figure.edgecolor']='white'




print('\n \n' + '\033[1m' + 'EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)' + '\033[0m' + '\n')
print('\033[1m' + 'EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION, OR PERIVENTRICULAR NODULAR HETEROTOPIA) \n \nHIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI' + '\033[0m'+ '\n')


for i in range(20):
    
    # Print spaces to separate from the next image
    print('\n \n \n \n \n \n')
  
    # Print real classification of the image
    if y_true[i]==0:
        real_classification='Normal MRI'
    elif y_true[i]==1:
        real_classification='Diffuse MCD'
    else:
        real_classification='PVNH'
        
    print('\033[1m' + 'REAL CLASSIFICATION OF THE IMAGE: {}'.format(real_classification) + '\033[0m')
   
    # Print model classification and model probability of MCD
    if y_predResNet50[i]==0:
        predicted_classification='Normal MRI'
    elif y_predResNet50[i]==1:
        predicted_classification='Diffuse MCD'
    else:
        predicted_classification='PVNH'   
    
    print('\033[1m' + 'MODEL CLASSIFICATION OF THE IMAGE: {}'.format(predicted_classification)  + '\033[0m \n') 
    print('\033[1m' + '   Prob. Normal MRI: {:.4f}    '.format(valResNet50[i][0]) + 'Prob. Diffuse MCD: {:.4f}     '.format(valResNet50[i][1]), 'Prob. PVNH: {:.4f}'.format(valResNet50[i][2]) + '\033[0m')
  
    
    # Arrays to plot
    original_image=shuffled_val_X[i]
    list_heatmaps=[
        # GradCam heatmap for normal MRI
        normalize(gradcam(loss_normal, shuffled_val_X[i])),
        # GradCam heatmap for diffuse MCD
        normalize(gradcam(loss_diffuseMCD, shuffled_val_X[i])),
        # GradCam heatmap for PVNH
        normalize(gradcam(loss_PVNH, shuffled_val_X[i])),
        # Saliency heatmap for normal MRI
        normalize(saliency(loss_normal, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
        # Saliency heatmap for diffuse MCD
        normalize(saliency(loss_diffuseMCD, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
        # Saliency heatmap for PVNH
        normalize(saliency(loss_PVNH, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2))
    ]
    
    # Define figure
    f=plt.figure(figsize=(20, 8))

    # Define the image grid
    grid = ImageGrid(f, 111,
                nrows_ncols=(2, 3),
                axes_pad=0.05,
                share_all=True,
                cbar_location="right",
                cbar_mode=None,
                cbar_size="2%",
                cbar_pad=0.15)

    
    # Iterate over the graphs
    for j, axis in enumerate(grid):
        # Plot original 
        im=axis.imshow(original_image)
        im=axis.imshow(list_heatmaps[j][0], cmap='jet', alpha=0.5*valResNet50[i][j%3])
        im=axis.set_xticks([])
        im=axis.set_yticks([])
    
    # Create scalarmappable for obtaining the colorbar from 0 to 1
    sm = plt.cm.ScalarMappable(cmap='jet', norm=plt.Normalize(vmin=0, vmax=1))
    plt.colorbar(sm)
    plt.show()
 
EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)

EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION, OR PERIVENTRICULAR NODULAR HETEROTOPIA) 
 
HIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI


 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.6853    Prob. Diffuse MCD: 0.0047      Prob. PVNH: 0.3099
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.4504    Prob. Diffuse MCD: 0.0016      Prob. PVNH: 0.5480
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.6581    Prob. Diffuse MCD: 0.3403      Prob. PVNH: 0.0015
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9922    Prob. Diffuse MCD: 0.0029      Prob. PVNH: 0.0050
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9530    Prob. Diffuse MCD: 0.0024      Prob. PVNH: 0.0446
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9967    Prob. Diffuse MCD: 0.0033      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.4641    Prob. Diffuse MCD: 0.5321      Prob. PVNH: 0.0038
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9998    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0002
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9792    Prob. Diffuse MCD: 0.0002      Prob. PVNH: 0.0207
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0109    Prob. Diffuse MCD: 0.9890      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9991    Prob. Diffuse MCD: 0.0009      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.4796    Prob. Diffuse MCD: 0.5202      Prob. PVNH: 0.0001
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.2447    Prob. Diffuse MCD: 0.2761      Prob. PVNH: 0.4792
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.1568    Prob. Diffuse MCD: 0.8425      Prob. PVNH: 0.0007
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.6941    Prob. Diffuse MCD: 0.2739      Prob. PVNH: 0.0320
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0017    Prob. Diffuse MCD: 0.9983      Prob. PVNH: 0.0001

InceptionResNetV2

Define the convolutional neural network

In [56]:
# Use InceptionResNetV2 as the base model
base_model = tf.keras.applications.inception_resnet_v2.InceptionResNetV2(layers=tf.keras.layers, weights='imagenet', include_top = False, input_shape=train_X.shape[1:])


# Get the output of the base model
x = base_model.output

# Add a 2D global average pooling layer
x = GlobalAveragePooling2D()(x)

## Add the fully-connected layers
x = Dense(units=516, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=256, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=64, activation='relu')(x)

# Ad a layer for multiclass classification
predictions = Dense(units = 3, activation = 'softmax')(x)

# Define the model to be trained
model = Model(inputs = base_model.input, outputs = predictions)

# Train the last 75 layers in the base model
for layer in base_model.layers[:-75]:
    layer.trainable = False
for layer in base_model.layers[-75:]:
    layer.trainable = True
    
# Compile the model
opt = Adam(lr = 0.0001)
model.compile(optimizer = opt, loss = 'categorical_crossentropy', metrics = ['accuracy'])

# Fit and test the model in the validation set
historyResNet50 = model.fit(shuffled_train_X, shuffled_train_y, validation_data = [shuffled_val_X, shuffled_val_y], epochs = 50, batch_size = 32)




print('\n')
print('\n')
# AUC in train and validation set
auc_trainResNet50 = roc_auc_score(shuffled_train_y, model.predict(shuffled_train_X))
print('The AUC in the train set is {:.4f}.'.format(auc_trainResNet50))
print('\n')
print('\n')
auc_validResNet50 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validResNet50))

print('\n')
print('\n')
print('\n')
print('\n')

# Figure size and colors
mpl.rcParams['figure.figsize'] = (20,24)
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='lightgreen'
plt.rcParams['figure.edgecolor']='black'

# Plot history of loss during training
plt.plot(historyResNet50.history['loss'], label='Train', color='red')
plt.plot(historyResNet50.history['val_loss'], label='Validation', color='blue')
plt.title('Loss in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Categorical cross-entropy loss', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=5)
plt.grid(b=None)
plt.show()

print('\n')
print('\n')
print('\n')
print('\n')

# Plot history of accuracy
plt.plot(historyResNet50.history['accuracy'], label='Train', color='red')
plt.plot(historyResNet50.history['val_accuracy'], label='Validation', color='blue')
plt.title('Accuracy in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Accuracy', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=1.1)
plt.grid(b=None)
plt.show()
Train on 8108 samples, validate on 481 samples
Epoch 1/50
8108/8108 [==============================] - 104s 13ms/sample - loss: 0.4667 - accuracy: 0.7985 - val_loss: 1.3852 - val_accuracy: 0.6466
Epoch 2/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0861 - accuracy: 0.9720 - val_loss: 1.5463 - val_accuracy: 0.6694
Epoch 3/50
8108/8108 [==============================] - 95s 12ms/sample - loss: 0.0526 - accuracy: 0.9816 - val_loss: 1.5635 - val_accuracy: 0.7110
Epoch 4/50
8108/8108 [==============================] - 93s 11ms/sample - loss: 0.0326 - accuracy: 0.9894 - val_loss: 1.6076 - val_accuracy: 0.7214
Epoch 5/50
8108/8108 [==============================] - 93s 11ms/sample - loss: 0.0451 - accuracy: 0.9850 - val_loss: 1.9910 - val_accuracy: 0.6944
Epoch 6/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0216 - accuracy: 0.9933 - val_loss: 2.5251 - val_accuracy: 0.6029
Epoch 7/50
8108/8108 [==============================] - 94s 12ms/sample - loss: 0.0229 - accuracy: 0.9938 - val_loss: 1.7570 - val_accuracy: 0.6881
Epoch 8/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0197 - accuracy: 0.9935 - val_loss: 1.6649 - val_accuracy: 0.7152
Epoch 9/50
8108/8108 [==============================] - 93s 11ms/sample - loss: 0.0296 - accuracy: 0.9915 - val_loss: 1.5648 - val_accuracy: 0.7048
Epoch 10/50
8108/8108 [==============================] - 93s 12ms/sample - loss: 0.0132 - accuracy: 0.9953 - val_loss: 2.0842 - val_accuracy: 0.6902
Epoch 11/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0111 - accuracy: 0.9967 - val_loss: 2.3350 - val_accuracy: 0.6965
Epoch 12/50
8108/8108 [==============================] - 94s 12ms/sample - loss: 0.0203 - accuracy: 0.9943 - val_loss: 1.7271 - val_accuracy: 0.7152
Epoch 13/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0116 - accuracy: 0.9967 - val_loss: 1.9950 - val_accuracy: 0.7048
Epoch 14/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0207 - accuracy: 0.9933 - val_loss: 2.4622 - val_accuracy: 0.6362
Epoch 15/50
8108/8108 [==============================] - 94s 12ms/sample - loss: 0.0131 - accuracy: 0.9953 - val_loss: 2.2062 - val_accuracy: 0.6985
Epoch 16/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0119 - accuracy: 0.9962 - val_loss: 1.7077 - val_accuracy: 0.7152
Epoch 17/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0071 - accuracy: 0.9968 - val_loss: 2.6881 - val_accuracy: 0.6902
Epoch 18/50
8108/8108 [==============================] - 94s 12ms/sample - loss: 0.0032 - accuracy: 0.9988 - val_loss: 2.7369 - val_accuracy: 0.6715
Epoch 19/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0175 - accuracy: 0.9944 - val_loss: 2.3236 - val_accuracy: 0.6445
Epoch 20/50
8108/8108 [==============================] - 93s 12ms/sample - loss: 0.0146 - accuracy: 0.9959 - val_loss: 2.2163 - val_accuracy: 0.6570
Epoch 21/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0088 - accuracy: 0.9975 - val_loss: 2.2587 - val_accuracy: 0.6778
Epoch 22/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0043 - accuracy: 0.9989 - val_loss: 2.8002 - val_accuracy: 0.6881
Epoch 23/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0089 - accuracy: 0.9972 - val_loss: 2.0520 - val_accuracy: 0.6819
Epoch 24/50
8108/8108 [==============================] - 93s 12ms/sample - loss: 0.0105 - accuracy: 0.9972 - val_loss: 2.9960 - val_accuracy: 0.6590
Epoch 25/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0119 - accuracy: 0.9970 - val_loss: 1.8573 - val_accuracy: 0.7131
Epoch 26/50
8108/8108 [==============================] - 90s 11ms/sample - loss: 0.0083 - accuracy: 0.9978 - val_loss: 2.7245 - val_accuracy: 0.6112
Epoch 27/50
8108/8108 [==============================] - 93s 11ms/sample - loss: 0.0194 - accuracy: 0.9935 - val_loss: 2.3681 - val_accuracy: 0.6632
Epoch 28/50
8108/8108 [==============================] - 93s 12ms/sample - loss: 0.0099 - accuracy: 0.9968 - val_loss: 1.8456 - val_accuracy: 0.6694
Epoch 29/50
8108/8108 [==============================] - 90s 11ms/sample - loss: 0.0023 - accuracy: 0.9993 - val_loss: 2.0500 - val_accuracy: 0.6840
Epoch 30/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 4.3919e-04 - accuracy: 0.9999 - val_loss: 2.3009 - val_accuracy: 0.6965
Epoch 31/50
8108/8108 [==============================] - 94s 12ms/sample - loss: 0.0098 - accuracy: 0.9964 - val_loss: 2.4320 - val_accuracy: 0.6965
Epoch 32/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0105 - accuracy: 0.9964 - val_loss: 2.3082 - val_accuracy: 0.6694
Epoch 33/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0094 - accuracy: 0.9969 - val_loss: 2.1126 - val_accuracy: 0.7069
Epoch 34/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0017 - accuracy: 0.9994 - val_loss: 2.3758 - val_accuracy: 0.7173
Epoch 35/50
8108/8108 [==============================] - 93s 11ms/sample - loss: 0.0096 - accuracy: 0.9977 - val_loss: 2.1160 - val_accuracy: 0.6507
Epoch 36/50
8108/8108 [==============================] - 93s 11ms/sample - loss: 0.0059 - accuracy: 0.9979 - val_loss: 2.3858 - val_accuracy: 0.6611
Epoch 37/50
8108/8108 [==============================] - 90s 11ms/sample - loss: 0.0112 - accuracy: 0.9972 - val_loss: 2.0203 - val_accuracy: 0.6840
Epoch 38/50
8108/8108 [==============================] - 90s 11ms/sample - loss: 0.0125 - accuracy: 0.9968 - val_loss: 2.5575 - val_accuracy: 0.6570
Epoch 39/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0051 - accuracy: 0.9984 - val_loss: 2.4495 - val_accuracy: 0.7193
Epoch 40/50
8108/8108 [==============================] - 94s 12ms/sample - loss: 0.0037 - accuracy: 0.9990 - val_loss: 2.0446 - val_accuracy: 0.7027
Epoch 41/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0147 - accuracy: 0.9956 - val_loss: 2.7518 - val_accuracy: 0.6403
Epoch 42/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0066 - accuracy: 0.9980 - val_loss: 2.2613 - val_accuracy: 0.6819
Epoch 43/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0051 - accuracy: 0.9984 - val_loss: 2.0904 - val_accuracy: 0.6778
Epoch 44/50
8108/8108 [==============================] - 94s 12ms/sample - loss: 4.2518e-04 - accuracy: 0.9999 - val_loss: 2.4416 - val_accuracy: 0.6715
Epoch 45/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0033 - accuracy: 0.9990 - val_loss: 2.5068 - val_accuracy: 0.6632
Epoch 46/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0101 - accuracy: 0.9968 - val_loss: 2.7600 - val_accuracy: 0.6445
Epoch 47/50
8108/8108 [==============================] - 94s 12ms/sample - loss: 0.0090 - accuracy: 0.9978 - val_loss: 2.1089 - val_accuracy: 0.6902
Epoch 48/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 0.0046 - accuracy: 0.9988 - val_loss: 2.2747 - val_accuracy: 0.7006
Epoch 49/50
8108/8108 [==============================] - 92s 11ms/sample - loss: 0.0037 - accuracy: 0.9991 - val_loss: 2.0968 - val_accuracy: 0.7173
Epoch 50/50
8108/8108 [==============================] - 91s 11ms/sample - loss: 2.1173e-04 - accuracy: 1.0000 - val_loss: 2.1230 - val_accuracy: 0.7214




The AUC in the train set is 1.0000.




The AUC in the validation set is 0.8670.















In [57]:
# Generate predictions in the form of probabilities for the validation set
valInceptionResNetV2 = model.predict(shuffled_val_X, batch_size = 32)

# Generate the confusion matrix in the validation set
y_true = np.argmax(shuffled_val_y, axis=1)
y_predInceptionResNetV2 = np.argmax(valInceptionResNetV2, axis=1)

# Confusion matrix
pd.DataFrame(confusion_matrix(y_true, y_predInceptionResNetV2), index=['True: Normal', 'True: Diffuse CM', 'True: PVNH'], columns=['Prediction: Normal', 'Prediction: Diffuse CM', 'Prediction: PVNH']).T
Out[57]:
True: Normal True: Diffuse CM True: PVNH
Prediction: Normal 116 40 27
Prediction: Diffuse CM 11 101 18
Prediction: PVNH 32 6 130
In [58]:
# Calculate accuracy in the validation set
accuracy_InceptionResNetV2 = accuracy_score(y_true=y_true, y_pred=y_predInceptionResNetV2)
print('The accuracy in the validation set is {:.4f}.'.format(accuracy_InceptionResNetV2))
The accuracy in the validation set is 0.7214.
In [59]:
# Calculate AUC in the validation set
auc_validInceptionResNetV2 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validInceptionResNetV2))
The AUC in the validation set is 0.8670.
In [60]:
# Classification report
print(classification_report(y_true, y_predInceptionResNetV2, target_names=['Normal MRI', 'Diffuse CM', 'PVNH']))
              precision    recall  f1-score   support

  Normal MRI       0.63      0.73      0.68       159
  Diffuse CM       0.78      0.69      0.73       147
        PVNH       0.77      0.74      0.76       175

    accuracy                           0.72       481
   macro avg       0.73      0.72      0.72       481
weighted avg       0.73      0.72      0.72       481

Save model InceptionResNetV2

In [61]:
# Serialize model to JSON
model_json = model.to_json()
with open("InceptionResNetV2.json", "w") as json_file:
    json_file.write(model_json)
# Serialize weights to HDF5
model.save_weights("InceptionResNetV2.h5")

Model visualization

In [62]:
# Visualize the structure and layers of the model
model.layers
Out[62]:
[<tensorflow.python.keras.engine.input_layer.InputLayer at 0x7f226432d7f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f226432d8d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f226432de48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f226432de10>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21503ff240>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f215040ef28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215040eef0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21504133c8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21344bccc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21344c3390>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f21344c3128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21344c3470>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21344ee748>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21344eed30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21344ee4e0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213449aa90>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21344a1080>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f213449a748>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134427438>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21343cea90>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21343d4080>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213444d160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21343ce748>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134470ef0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213437bda0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21343fa9e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213437bd68>,
 <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f21343ac128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213449ae10>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21343fa128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134381240>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21343ac470>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134446fd0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134427780>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21343a5cc0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134357828>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213444d710>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134427cf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21343ac668>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134357e10>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21343575c0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21342e1400>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213428ca58>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134295198>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213430d128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213428c710>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213432ceb8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21342b8d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21343379b0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21342b8d30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134357b70>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21343370f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21342b8a20>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134304d30>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21342e1748>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134263c88>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213430d6d8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21342e1cc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213426d630>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f213426d0f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213426d438>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2134217828>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134217be0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21341800b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21341ac710>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21341acc88>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213422a208>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21341ac3c8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21341cecc0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134158a20>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21341d5668>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213415f160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134217320>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21341d5128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21341586d8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213421fd68>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21341f8e80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134102d30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213421fd30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134180978>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134102cf8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21341029e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21341091d0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f213412ecc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134136898>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213409e0f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134040ef0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213404a940>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21340c06d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213404a080>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21340ebd68>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21340756d8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21340ebd30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134075c50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134136518>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21340eba20>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134075390>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21340c0a20>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134097c88>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21147e09e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21340c8160>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213409e630>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21147e0fd0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21147e06a0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21147e0d68>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21703db780>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21703db908>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21706166d8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c4c1860>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c74efd0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21980b5898>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22343bd9b0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21984d2518>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2264557550>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b815ec88>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170429e10>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21703dbf60>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21984d2a20>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22645570b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f217074a390>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170600b38>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f215075e080>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21980b56a0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21706164e0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215075e400>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f215075e9e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215075e3c8>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f217031deb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217031df28>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21703d03c8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21703bfda0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21703c09e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170322588>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21703c0fd0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c283c18>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f226c45b588>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c28e1d0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f226c45bb00>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f217031dd30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c2838d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f226c45b240>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170332f60>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c28bf28>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21984e1898>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170322eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c28bef0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21984e1e10>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21984e1550>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21984e1c18>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21984f0fd0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21984f01d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234082898>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b814aef0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b814aeb8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21707ee240>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b8163ba8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21707f08d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8143d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21707f0e48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b813b7b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21984f0c88>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21707f0588>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b813b048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21984debe0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2234082be0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b85a0550>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21707eeb70>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f223407d198>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b85a0ac8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21b85a0208>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b85a08d0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21506e8cc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21506e84e0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f217041a550>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21703ffba8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217040e160>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21506c4048>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21703ff860>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21507ba588>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f217024eeb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21507bab00>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217024ee80>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21506e86a0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21507ba240>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170268358>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21506f0940>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f217041a898>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170623dd8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21506c4828>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217041ae10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217062b780>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f217062b240>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f217062b588>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2150767320>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150767c88>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215007a208>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198745860>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198745dd8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2150762320>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198745518>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150770d68>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21707a9b70>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215074c7b8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170792128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21507678d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215074c048>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21707a9828>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150766eb8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f215007a550>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21707b4e80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150766e80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215007aac8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21707b4e48>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21707b8320>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21707b82e8>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2198087e10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21980909e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21984a0240>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21986ec518>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21986eca90>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198080898>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21986ec1d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21980deeb8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21503b8240>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21980dee80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21503b8b38>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198090128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21980ee358>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21503b8710>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198080550>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f219847cdd8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150398b38>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219807b198>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21984a0780>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21701ca0f0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21503987f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2150398eb8>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21701eae48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21701eae10>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170575320>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22641d3da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22641c5748>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21701c54e0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22641c5208>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8137b70>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f22641daf60>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8114128>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217076ba58>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21701eadd8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b8137828>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f217076b198>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21701f8eb8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f217053ae80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21707537f0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21701c5e10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217053ae48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170753d68>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21707534a8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170753b70>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21b823ff60>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b823f780>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b8247198>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21702b4748>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21702b4cc0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21702b4400>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8575978>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8575f60>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b823f940>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b8575630>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b826bb38>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b84ea470>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8247ac8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b84cb160>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f21b84ea860>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21b84ea128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b84e83c8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f217003a940>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217003af28>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f217003a5f8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150073c50>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150073c18>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b84e7e48>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2150073e80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b84e7e10>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f215065f6d8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b84e8cc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215065f748>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2150651320>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21506512e8>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f215064bd30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215065e908>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f223464f748>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2234663cf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2234663cc0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2234663f60>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21501ebc18>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21501ebfd0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215065e0f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21501f6048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f223464fa90>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b80ccda0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2234662048>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b80d57f0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21b80d5080>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b80d55f8>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2134791908>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134791cc0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213478d2b0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21347b5cc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198454668>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198454128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198440e80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198450978>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21347914a8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21984500b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213477ee48>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21503ea630>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213477ee10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21503eaba8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21503ea2e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21503ea9b0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f219840ecc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219840e4e0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198405048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21500ebf28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21500f5a20>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21500f5160>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21500d07b8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21500d0d30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219840e6a0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21500d0470>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198411940>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21347e09e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198405828>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21347e0fd0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21347e06a0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21347e0d68>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f219870eda0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219870ea58>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219872a2b0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21502cb860>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21502cbdd8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21502cb518>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21502dab70>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170222128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219870ecf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21502da828>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198708c50>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21701f94a8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219872abe0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21701f9080>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2170223240>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170223208>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21b84a8f28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b84a8c50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b84a0a20>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f215033ec18>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21503741d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215033e8d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150378f28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150378ef0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b84a1470>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215030c3c8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b84a03c8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21502fd1d0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b84a02b0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150333710>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21503331d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2150333518>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21983b8828>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21983b8be0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219839c208>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc17d3fd0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2fc17d3c88>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2fc17ec048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2fc17bce48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f226465e898>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21983b83c8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f226465e128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21983b5d68>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2264666550>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21983b5d30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2264666ac8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2264666208>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22646668d0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21b8285be0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8285f28>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b8297198>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21986aaef0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21986ad940>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21986ad080>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c5516d8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c551c50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b82856d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c551390>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b828bd30>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c562908>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8297748>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c562ef0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f220c5625c0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c562c88>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2170469f98>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21704697b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f217044f1d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21704a9780>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21704a9cf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21704a9438>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f226460ea90>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2264624080>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170469978>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f226460e748>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170465b70>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2264611cc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217044fb00>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2264611c88>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2264611f98>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2264611fd0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f213465de48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213465df28>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134646588>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21983efb38>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21983f20f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21983ef7f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b80ace48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b80ace10>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213465dd30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b80a12e8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213464ef60>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134504c88>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134646eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134533630>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21345330f0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134533438>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2134509748>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134509b00>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170500f60>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f217050def0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217050deb8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170533390>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198051d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219806d7b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21345092e8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219806d048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170500c88>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b84fcef0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170500c50>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b84fd9e8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21b84fd128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b84fd7f0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21b850cb00>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b850ceb8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215048b0b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21504a7e10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21504ac860>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21504ac0f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f220c6575f8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f220c657b70>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b850c6a0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f220c6572b0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150482c50>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150547828>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215048b668>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150547da0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21505474e0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2150547ba8>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2170180eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21701806d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21701a20f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f219812e6a0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219812ec18>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219812e358>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21981139b0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198113f98>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170180898>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198113668>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f217018aa90>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198526be0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21701a2a20>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198524198>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2198526898>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198526e10>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2170660f98>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170660c50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21706634a8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21705dea58>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21705e8198>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21705de710>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21705c8d68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21705c8d30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170660ef0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21705c8a20>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170655e80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21704f7f98>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170663dd8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21704f7f60>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21704e3400>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21704e3358>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21981bee48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21981b9a58>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21981eeda0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198205e10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198205dd8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219820f2b0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198200d30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21986206d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21981b9da0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198620198>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21981ee518>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198610eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21981e01d0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198608908>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2198608048>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198608710>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21b834ba20>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b834bdd8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b83463c8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213455fdd8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134566780>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134566240>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21345e6470>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21345e6c88>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b834b5c0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21345e6d30>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8349f60>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21345db748>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8349f28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21345dbcc0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21345db400>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21345dbac8>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2150194dd8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21501945f8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21501a4160>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21502905c0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150290b38>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2150290278>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21987ad8d0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21987ade48>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21501947b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21987ad588>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150184080>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198782b00>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21501a4940>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21506840b8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21987827b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198782e80>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2150688eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150688b70>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21506a43c8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170369978>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170369f60>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170369630>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213460fc88>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213460fc50>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2150688e10>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213460fef0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21506a2080>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21345fbeb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21506a4cf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21345fbe80>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2134702358>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134702320>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2134726c18>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213471e630>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21346ff780>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21346e9d30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21346e9cf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21346e99e8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f215011fc50>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21500fc5f8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213471e1d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21500fc0b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21346ffac8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150142b38>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21346e00f0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215013d828>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f215013d0b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215013d630>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2150140940>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150140cf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22647112e8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2264713cf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22647036a0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2264703160>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2264751eb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f22647509b0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21501404e0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f22647500f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f215015fe80>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198558668>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215015fe48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198558be0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2198558320>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21985589e8>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f219854bcf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219854b518>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219826a5f8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198239b70>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21706c2128>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219854b6d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198140198>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198239828>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198169978>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170704710>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21706e4da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198178860>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170704c88>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21706e4d68>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198178080>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21707043c8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21706d3240>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198168f60>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f219826a940>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198365fd0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198140a58>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219826af28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198365c88>,
 <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f2198361048>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2198361390>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170699c50>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170683e48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170683e10>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b82d62e8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b82e7c88>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b82bd630>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21706b8cc0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b82bd0f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2170699be0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21982b3e10>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170699ba8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198293860>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2198293358>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198293668>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f219831a978>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219831ad30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198328320>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2198301d30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b80436d8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b8043198>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b806feb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8066908>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219831a518>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b8066048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f219830beb8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21985caa58>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219830be80>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21985ca208>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21985caf98>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21985cab00>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21985a0c50>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21985a0470>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21985b0208>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f219857feb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b83ab9b0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b83ab0f0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b838b668>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b838bbe0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21985a0630>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b838b320>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21985b6da0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8238898>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21985b07b8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8238e10>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21b8238908>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b8238c18>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21b832cf28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b832c748>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b82f9160>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8405710>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8405c88>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b84053c8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8404940>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8404f28>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b832c908>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b84045f8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8321b00>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21505fbb70>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b82f9a90>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215061b128>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21505fbbe0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21505fbef0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21501fcf28>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21501fcbe0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215020a438>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b84479e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8447fd0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b84476a0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8473c18>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b83bb1d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21501fce80>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b84738d0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f215021cdd8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b83dee48>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215020ad68>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b83dee10>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21b83e60b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b83e62b0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21b81cacf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b81d18d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b81db710>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b8188cc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b8188c88>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b8188f98>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b81b2ef0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b81b2eb8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21b81d10b8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21987ba390>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21b81dba58>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21987e0d30>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21b81e5048>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21987e66d8>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21987e61d0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21987e64e0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21986527f0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2198652ba8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219865b9e8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21982c9f98>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21982c9f60>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21982d0400>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21982f4dd8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219817c780>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2198652390>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f219817c240>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f219865bd30>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f219819feb8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f219865bcf8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21981a89b0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21981a84a8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21981a87b8>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2170594ac8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2170594e80>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21705a5048>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21504c7dd8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21504d0828>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21504d00b8>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21504f3f60>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f215023ca58>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2170594668>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f215023c198>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f217059bc18>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2150269710>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f217059bfd0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2150269c88>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2150269780>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2150269a90>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2134756da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21347565c0>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134763128>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2134692588>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134692b00>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134692240>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213457e7b8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f213457ed30>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2134756780>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f213457e470>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f213475ca20>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21345a89e8>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2134763908>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21345a8fd0>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f21345a8a58>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21345a8d68>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f2114797da0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2114797a58>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21147a52b0>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2114753860>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2114753dd8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2114753518>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21146fca90>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2114704080>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2114797cf8>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21146fc748>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f211479dc50>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f2114729cc0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21147a5be0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f2114729c88>,
 <tensorflow.python.keras.layers.merge.Concatenate at 0x7f2114729f28>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f2114729fd0>,
 <tensorflow.python.keras.layers.core.Lambda at 0x7f21146d4e48>,
 <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f21146d4f28>,
 <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f21146dcef0>,
 <tensorflow.python.keras.layers.core.Activation at 0x7f21146e6ac8>,
 <tensorflow.python.keras.layers.pooling.GlobalAveragePooling2D at 0x7f21145bb438>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f226432d7b8>,
 <tensorflow.python.keras.layers.core.Dropout at 0x7f21145bb4e0>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f2114567f60>,
 <tensorflow.python.keras.layers.core.Dropout at 0x7f2114567b00>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f21145a7240>,
 <tensorflow.python.keras.layers.core.Dense at 0x7f211453f9e8>]
In [63]:
# Visualize the structure and layers of the model
print(model.summary())
Model: "model_183"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_4 (InputLayer)            [(None, 512, 512, 3) 0                                            
__________________________________________________________________________________________________
conv2d_129 (Conv2D)             (None, 255, 255, 32) 864         input_4[0][0]                    
__________________________________________________________________________________________________
batch_normalization_98 (BatchNo (None, 255, 255, 32) 96          conv2d_129[0][0]                 
__________________________________________________________________________________________________
activation_98 (Activation)      (None, 255, 255, 32) 0           batch_normalization_98[0][0]     
__________________________________________________________________________________________________
conv2d_130 (Conv2D)             (None, 253, 253, 32) 9216        activation_98[0][0]              
__________________________________________________________________________________________________
batch_normalization_99 (BatchNo (None, 253, 253, 32) 96          conv2d_130[0][0]                 
__________________________________________________________________________________________________
activation_99 (Activation)      (None, 253, 253, 32) 0           batch_normalization_99[0][0]     
__________________________________________________________________________________________________
conv2d_131 (Conv2D)             (None, 253, 253, 64) 18432       activation_99[0][0]              
__________________________________________________________________________________________________
batch_normalization_100 (BatchN (None, 253, 253, 64) 192         conv2d_131[0][0]                 
__________________________________________________________________________________________________
activation_100 (Activation)     (None, 253, 253, 64) 0           batch_normalization_100[0][0]    
__________________________________________________________________________________________________
max_pooling2d_14 (MaxPooling2D) (None, 126, 126, 64) 0           activation_100[0][0]             
__________________________________________________________________________________________________
conv2d_132 (Conv2D)             (None, 126, 126, 80) 5120        max_pooling2d_14[0][0]           
__________________________________________________________________________________________________
batch_normalization_101 (BatchN (None, 126, 126, 80) 240         conv2d_132[0][0]                 
__________________________________________________________________________________________________
activation_101 (Activation)     (None, 126, 126, 80) 0           batch_normalization_101[0][0]    
__________________________________________________________________________________________________
conv2d_133 (Conv2D)             (None, 124, 124, 192 138240      activation_101[0][0]             
__________________________________________________________________________________________________
batch_normalization_102 (BatchN (None, 124, 124, 192 576         conv2d_133[0][0]                 
__________________________________________________________________________________________________
activation_102 (Activation)     (None, 124, 124, 192 0           batch_normalization_102[0][0]    
__________________________________________________________________________________________________
max_pooling2d_15 (MaxPooling2D) (None, 61, 61, 192)  0           activation_102[0][0]             
__________________________________________________________________________________________________
conv2d_137 (Conv2D)             (None, 61, 61, 64)   12288       max_pooling2d_15[0][0]           
__________________________________________________________________________________________________
batch_normalization_106 (BatchN (None, 61, 61, 64)   192         conv2d_137[0][0]                 
__________________________________________________________________________________________________
activation_106 (Activation)     (None, 61, 61, 64)   0           batch_normalization_106[0][0]    
__________________________________________________________________________________________________
conv2d_135 (Conv2D)             (None, 61, 61, 48)   9216        max_pooling2d_15[0][0]           
__________________________________________________________________________________________________
conv2d_138 (Conv2D)             (None, 61, 61, 96)   55296       activation_106[0][0]             
__________________________________________________________________________________________________
batch_normalization_104 (BatchN (None, 61, 61, 48)   144         conv2d_135[0][0]                 
__________________________________________________________________________________________________
batch_normalization_107 (BatchN (None, 61, 61, 96)   288         conv2d_138[0][0]                 
__________________________________________________________________________________________________
activation_104 (Activation)     (None, 61, 61, 48)   0           batch_normalization_104[0][0]    
__________________________________________________________________________________________________
activation_107 (Activation)     (None, 61, 61, 96)   0           batch_normalization_107[0][0]    
__________________________________________________________________________________________________
average_pooling2d_9 (AveragePoo (None, 61, 61, 192)  0           max_pooling2d_15[0][0]           
__________________________________________________________________________________________________
conv2d_134 (Conv2D)             (None, 61, 61, 96)   18432       max_pooling2d_15[0][0]           
__________________________________________________________________________________________________
conv2d_136 (Conv2D)             (None, 61, 61, 64)   76800       activation_104[0][0]             
__________________________________________________________________________________________________
conv2d_139 (Conv2D)             (None, 61, 61, 96)   82944       activation_107[0][0]             
__________________________________________________________________________________________________
conv2d_140 (Conv2D)             (None, 61, 61, 64)   12288       average_pooling2d_9[0][0]        
__________________________________________________________________________________________________
batch_normalization_103 (BatchN (None, 61, 61, 96)   288         conv2d_134[0][0]                 
__________________________________________________________________________________________________
batch_normalization_105 (BatchN (None, 61, 61, 64)   192         conv2d_136[0][0]                 
__________________________________________________________________________________________________
batch_normalization_108 (BatchN (None, 61, 61, 96)   288         conv2d_139[0][0]                 
__________________________________________________________________________________________________
batch_normalization_109 (BatchN (None, 61, 61, 64)   192         conv2d_140[0][0]                 
__________________________________________________________________________________________________
activation_103 (Activation)     (None, 61, 61, 96)   0           batch_normalization_103[0][0]    
__________________________________________________________________________________________________
activation_105 (Activation)     (None, 61, 61, 64)   0           batch_normalization_105[0][0]    
__________________________________________________________________________________________________
activation_108 (Activation)     (None, 61, 61, 96)   0           batch_normalization_108[0][0]    
__________________________________________________________________________________________________
activation_109 (Activation)     (None, 61, 61, 64)   0           batch_normalization_109[0][0]    
__________________________________________________________________________________________________
mixed_5b (Concatenate)          (None, 61, 61, 320)  0           activation_103[0][0]             
                                                                 activation_105[0][0]             
                                                                 activation_108[0][0]             
                                                                 activation_109[0][0]             
__________________________________________________________________________________________________
conv2d_144 (Conv2D)             (None, 61, 61, 32)   10240       mixed_5b[0][0]                   
__________________________________________________________________________________________________
batch_normalization_113 (BatchN (None, 61, 61, 32)   96          conv2d_144[0][0]                 
__________________________________________________________________________________________________
activation_113 (Activation)     (None, 61, 61, 32)   0           batch_normalization_113[0][0]    
__________________________________________________________________________________________________
conv2d_142 (Conv2D)             (None, 61, 61, 32)   10240       mixed_5b[0][0]                   
__________________________________________________________________________________________________
conv2d_145 (Conv2D)             (None, 61, 61, 48)   13824       activation_113[0][0]             
__________________________________________________________________________________________________
batch_normalization_111 (BatchN (None, 61, 61, 32)   96          conv2d_142[0][0]                 
__________________________________________________________________________________________________
batch_normalization_114 (BatchN (None, 61, 61, 48)   144         conv2d_145[0][0]                 
__________________________________________________________________________________________________
activation_111 (Activation)     (None, 61, 61, 32)   0           batch_normalization_111[0][0]    
__________________________________________________________________________________________________
activation_114 (Activation)     (None, 61, 61, 48)   0           batch_normalization_114[0][0]    
__________________________________________________________________________________________________
conv2d_141 (Conv2D)             (None, 61, 61, 32)   10240       mixed_5b[0][0]                   
__________________________________________________________________________________________________
conv2d_143 (Conv2D)             (None, 61, 61, 32)   9216        activation_111[0][0]             
__________________________________________________________________________________________________
conv2d_146 (Conv2D)             (None, 61, 61, 64)   27648       activation_114[0][0]             
__________________________________________________________________________________________________
batch_normalization_110 (BatchN (None, 61, 61, 32)   96          conv2d_141[0][0]                 
__________________________________________________________________________________________________
batch_normalization_112 (BatchN (None, 61, 61, 32)   96          conv2d_143[0][0]                 
__________________________________________________________________________________________________
batch_normalization_115 (BatchN (None, 61, 61, 64)   192         conv2d_146[0][0]                 
__________________________________________________________________________________________________
activation_110 (Activation)     (None, 61, 61, 32)   0           batch_normalization_110[0][0]    
__________________________________________________________________________________________________
activation_112 (Activation)     (None, 61, 61, 32)   0           batch_normalization_112[0][0]    
__________________________________________________________________________________________________
activation_115 (Activation)     (None, 61, 61, 64)   0           batch_normalization_115[0][0]    
__________________________________________________________________________________________________
block35_1_mixed (Concatenate)   (None, 61, 61, 128)  0           activation_110[0][0]             
                                                                 activation_112[0][0]             
                                                                 activation_115[0][0]             
__________________________________________________________________________________________________
block35_1_conv (Conv2D)         (None, 61, 61, 320)  41280       block35_1_mixed[0][0]            
__________________________________________________________________________________________________
block35_1 (Lambda)              (None, 61, 61, 320)  0           mixed_5b[0][0]                   
                                                                 block35_1_conv[0][0]             
__________________________________________________________________________________________________
block35_1_ac (Activation)       (None, 61, 61, 320)  0           block35_1[0][0]                  
__________________________________________________________________________________________________
conv2d_150 (Conv2D)             (None, 61, 61, 32)   10240       block35_1_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_119 (BatchN (None, 61, 61, 32)   96          conv2d_150[0][0]                 
__________________________________________________________________________________________________
activation_119 (Activation)     (None, 61, 61, 32)   0           batch_normalization_119[0][0]    
__________________________________________________________________________________________________
conv2d_148 (Conv2D)             (None, 61, 61, 32)   10240       block35_1_ac[0][0]               
__________________________________________________________________________________________________
conv2d_151 (Conv2D)             (None, 61, 61, 48)   13824       activation_119[0][0]             
__________________________________________________________________________________________________
batch_normalization_117 (BatchN (None, 61, 61, 32)   96          conv2d_148[0][0]                 
__________________________________________________________________________________________________
batch_normalization_120 (BatchN (None, 61, 61, 48)   144         conv2d_151[0][0]                 
__________________________________________________________________________________________________
activation_117 (Activation)     (None, 61, 61, 32)   0           batch_normalization_117[0][0]    
__________________________________________________________________________________________________
activation_120 (Activation)     (None, 61, 61, 48)   0           batch_normalization_120[0][0]    
__________________________________________________________________________________________________
conv2d_147 (Conv2D)             (None, 61, 61, 32)   10240       block35_1_ac[0][0]               
__________________________________________________________________________________________________
conv2d_149 (Conv2D)             (None, 61, 61, 32)   9216        activation_117[0][0]             
__________________________________________________________________________________________________
conv2d_152 (Conv2D)             (None, 61, 61, 64)   27648       activation_120[0][0]             
__________________________________________________________________________________________________
batch_normalization_116 (BatchN (None, 61, 61, 32)   96          conv2d_147[0][0]                 
__________________________________________________________________________________________________
batch_normalization_118 (BatchN (None, 61, 61, 32)   96          conv2d_149[0][0]                 
__________________________________________________________________________________________________
batch_normalization_121 (BatchN (None, 61, 61, 64)   192         conv2d_152[0][0]                 
__________________________________________________________________________________________________
activation_116 (Activation)     (None, 61, 61, 32)   0           batch_normalization_116[0][0]    
__________________________________________________________________________________________________
activation_118 (Activation)     (None, 61, 61, 32)   0           batch_normalization_118[0][0]    
__________________________________________________________________________________________________
activation_121 (Activation)     (None, 61, 61, 64)   0           batch_normalization_121[0][0]    
__________________________________________________________________________________________________
block35_2_mixed (Concatenate)   (None, 61, 61, 128)  0           activation_116[0][0]             
                                                                 activation_118[0][0]             
                                                                 activation_121[0][0]             
__________________________________________________________________________________________________
block35_2_conv (Conv2D)         (None, 61, 61, 320)  41280       block35_2_mixed[0][0]            
__________________________________________________________________________________________________
block35_2 (Lambda)              (None, 61, 61, 320)  0           block35_1_ac[0][0]               
                                                                 block35_2_conv[0][0]             
__________________________________________________________________________________________________
block35_2_ac (Activation)       (None, 61, 61, 320)  0           block35_2[0][0]                  
__________________________________________________________________________________________________
conv2d_156 (Conv2D)             (None, 61, 61, 32)   10240       block35_2_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_125 (BatchN (None, 61, 61, 32)   96          conv2d_156[0][0]                 
__________________________________________________________________________________________________
activation_125 (Activation)     (None, 61, 61, 32)   0           batch_normalization_125[0][0]    
__________________________________________________________________________________________________
conv2d_154 (Conv2D)             (None, 61, 61, 32)   10240       block35_2_ac[0][0]               
__________________________________________________________________________________________________
conv2d_157 (Conv2D)             (None, 61, 61, 48)   13824       activation_125[0][0]             
__________________________________________________________________________________________________
batch_normalization_123 (BatchN (None, 61, 61, 32)   96          conv2d_154[0][0]                 
__________________________________________________________________________________________________
batch_normalization_126 (BatchN (None, 61, 61, 48)   144         conv2d_157[0][0]                 
__________________________________________________________________________________________________
activation_123 (Activation)     (None, 61, 61, 32)   0           batch_normalization_123[0][0]    
__________________________________________________________________________________________________
activation_126 (Activation)     (None, 61, 61, 48)   0           batch_normalization_126[0][0]    
__________________________________________________________________________________________________
conv2d_153 (Conv2D)             (None, 61, 61, 32)   10240       block35_2_ac[0][0]               
__________________________________________________________________________________________________
conv2d_155 (Conv2D)             (None, 61, 61, 32)   9216        activation_123[0][0]             
__________________________________________________________________________________________________
conv2d_158 (Conv2D)             (None, 61, 61, 64)   27648       activation_126[0][0]             
__________________________________________________________________________________________________
batch_normalization_122 (BatchN (None, 61, 61, 32)   96          conv2d_153[0][0]                 
__________________________________________________________________________________________________
batch_normalization_124 (BatchN (None, 61, 61, 32)   96          conv2d_155[0][0]                 
__________________________________________________________________________________________________
batch_normalization_127 (BatchN (None, 61, 61, 64)   192         conv2d_158[0][0]                 
__________________________________________________________________________________________________
activation_122 (Activation)     (None, 61, 61, 32)   0           batch_normalization_122[0][0]    
__________________________________________________________________________________________________
activation_124 (Activation)     (None, 61, 61, 32)   0           batch_normalization_124[0][0]    
__________________________________________________________________________________________________
activation_127 (Activation)     (None, 61, 61, 64)   0           batch_normalization_127[0][0]    
__________________________________________________________________________________________________
block35_3_mixed (Concatenate)   (None, 61, 61, 128)  0           activation_122[0][0]             
                                                                 activation_124[0][0]             
                                                                 activation_127[0][0]             
__________________________________________________________________________________________________
block35_3_conv (Conv2D)         (None, 61, 61, 320)  41280       block35_3_mixed[0][0]            
__________________________________________________________________________________________________
block35_3 (Lambda)              (None, 61, 61, 320)  0           block35_2_ac[0][0]               
                                                                 block35_3_conv[0][0]             
__________________________________________________________________________________________________
block35_3_ac (Activation)       (None, 61, 61, 320)  0           block35_3[0][0]                  
__________________________________________________________________________________________________
conv2d_162 (Conv2D)             (None, 61, 61, 32)   10240       block35_3_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_131 (BatchN (None, 61, 61, 32)   96          conv2d_162[0][0]                 
__________________________________________________________________________________________________
activation_131 (Activation)     (None, 61, 61, 32)   0           batch_normalization_131[0][0]    
__________________________________________________________________________________________________
conv2d_160 (Conv2D)             (None, 61, 61, 32)   10240       block35_3_ac[0][0]               
__________________________________________________________________________________________________
conv2d_163 (Conv2D)             (None, 61, 61, 48)   13824       activation_131[0][0]             
__________________________________________________________________________________________________
batch_normalization_129 (BatchN (None, 61, 61, 32)   96          conv2d_160[0][0]                 
__________________________________________________________________________________________________
batch_normalization_132 (BatchN (None, 61, 61, 48)   144         conv2d_163[0][0]                 
__________________________________________________________________________________________________
activation_129 (Activation)     (None, 61, 61, 32)   0           batch_normalization_129[0][0]    
__________________________________________________________________________________________________
activation_132 (Activation)     (None, 61, 61, 48)   0           batch_normalization_132[0][0]    
__________________________________________________________________________________________________
conv2d_159 (Conv2D)             (None, 61, 61, 32)   10240       block35_3_ac[0][0]               
__________________________________________________________________________________________________
conv2d_161 (Conv2D)             (None, 61, 61, 32)   9216        activation_129[0][0]             
__________________________________________________________________________________________________
conv2d_164 (Conv2D)             (None, 61, 61, 64)   27648       activation_132[0][0]             
__________________________________________________________________________________________________
batch_normalization_128 (BatchN (None, 61, 61, 32)   96          conv2d_159[0][0]                 
__________________________________________________________________________________________________
batch_normalization_130 (BatchN (None, 61, 61, 32)   96          conv2d_161[0][0]                 
__________________________________________________________________________________________________
batch_normalization_133 (BatchN (None, 61, 61, 64)   192         conv2d_164[0][0]                 
__________________________________________________________________________________________________
activation_128 (Activation)     (None, 61, 61, 32)   0           batch_normalization_128[0][0]    
__________________________________________________________________________________________________
activation_130 (Activation)     (None, 61, 61, 32)   0           batch_normalization_130[0][0]    
__________________________________________________________________________________________________
activation_133 (Activation)     (None, 61, 61, 64)   0           batch_normalization_133[0][0]    
__________________________________________________________________________________________________
block35_4_mixed (Concatenate)   (None, 61, 61, 128)  0           activation_128[0][0]             
                                                                 activation_130[0][0]             
                                                                 activation_133[0][0]             
__________________________________________________________________________________________________
block35_4_conv (Conv2D)         (None, 61, 61, 320)  41280       block35_4_mixed[0][0]            
__________________________________________________________________________________________________
block35_4 (Lambda)              (None, 61, 61, 320)  0           block35_3_ac[0][0]               
                                                                 block35_4_conv[0][0]             
__________________________________________________________________________________________________
block35_4_ac (Activation)       (None, 61, 61, 320)  0           block35_4[0][0]                  
__________________________________________________________________________________________________
conv2d_168 (Conv2D)             (None, 61, 61, 32)   10240       block35_4_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_137 (BatchN (None, 61, 61, 32)   96          conv2d_168[0][0]                 
__________________________________________________________________________________________________
activation_137 (Activation)     (None, 61, 61, 32)   0           batch_normalization_137[0][0]    
__________________________________________________________________________________________________
conv2d_166 (Conv2D)             (None, 61, 61, 32)   10240       block35_4_ac[0][0]               
__________________________________________________________________________________________________
conv2d_169 (Conv2D)             (None, 61, 61, 48)   13824       activation_137[0][0]             
__________________________________________________________________________________________________
batch_normalization_135 (BatchN (None, 61, 61, 32)   96          conv2d_166[0][0]                 
__________________________________________________________________________________________________
batch_normalization_138 (BatchN (None, 61, 61, 48)   144         conv2d_169[0][0]                 
__________________________________________________________________________________________________
activation_135 (Activation)     (None, 61, 61, 32)   0           batch_normalization_135[0][0]    
__________________________________________________________________________________________________
activation_138 (Activation)     (None, 61, 61, 48)   0           batch_normalization_138[0][0]    
__________________________________________________________________________________________________
conv2d_165 (Conv2D)             (None, 61, 61, 32)   10240       block35_4_ac[0][0]               
__________________________________________________________________________________________________
conv2d_167 (Conv2D)             (None, 61, 61, 32)   9216        activation_135[0][0]             
__________________________________________________________________________________________________
conv2d_170 (Conv2D)             (None, 61, 61, 64)   27648       activation_138[0][0]             
__________________________________________________________________________________________________
batch_normalization_134 (BatchN (None, 61, 61, 32)   96          conv2d_165[0][0]                 
__________________________________________________________________________________________________
batch_normalization_136 (BatchN (None, 61, 61, 32)   96          conv2d_167[0][0]                 
__________________________________________________________________________________________________
batch_normalization_139 (BatchN (None, 61, 61, 64)   192         conv2d_170[0][0]                 
__________________________________________________________________________________________________
activation_134 (Activation)     (None, 61, 61, 32)   0           batch_normalization_134[0][0]    
__________________________________________________________________________________________________
activation_136 (Activation)     (None, 61, 61, 32)   0           batch_normalization_136[0][0]    
__________________________________________________________________________________________________
activation_139 (Activation)     (None, 61, 61, 64)   0           batch_normalization_139[0][0]    
__________________________________________________________________________________________________
block35_5_mixed (Concatenate)   (None, 61, 61, 128)  0           activation_134[0][0]             
                                                                 activation_136[0][0]             
                                                                 activation_139[0][0]             
__________________________________________________________________________________________________
block35_5_conv (Conv2D)         (None, 61, 61, 320)  41280       block35_5_mixed[0][0]            
__________________________________________________________________________________________________
block35_5 (Lambda)              (None, 61, 61, 320)  0           block35_4_ac[0][0]               
                                                                 block35_5_conv[0][0]             
__________________________________________________________________________________________________
block35_5_ac (Activation)       (None, 61, 61, 320)  0           block35_5[0][0]                  
__________________________________________________________________________________________________
conv2d_174 (Conv2D)             (None, 61, 61, 32)   10240       block35_5_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_143 (BatchN (None, 61, 61, 32)   96          conv2d_174[0][0]                 
__________________________________________________________________________________________________
activation_143 (Activation)     (None, 61, 61, 32)   0           batch_normalization_143[0][0]    
__________________________________________________________________________________________________
conv2d_172 (Conv2D)             (None, 61, 61, 32)   10240       block35_5_ac[0][0]               
__________________________________________________________________________________________________
conv2d_175 (Conv2D)             (None, 61, 61, 48)   13824       activation_143[0][0]             
__________________________________________________________________________________________________
batch_normalization_141 (BatchN (None, 61, 61, 32)   96          conv2d_172[0][0]                 
__________________________________________________________________________________________________
batch_normalization_144 (BatchN (None, 61, 61, 48)   144         conv2d_175[0][0]                 
__________________________________________________________________________________________________
activation_141 (Activation)     (None, 61, 61, 32)   0           batch_normalization_141[0][0]    
__________________________________________________________________________________________________
activation_144 (Activation)     (None, 61, 61, 48)   0           batch_normalization_144[0][0]    
__________________________________________________________________________________________________
conv2d_171 (Conv2D)             (None, 61, 61, 32)   10240       block35_5_ac[0][0]               
__________________________________________________________________________________________________
conv2d_173 (Conv2D)             (None, 61, 61, 32)   9216        activation_141[0][0]             
__________________________________________________________________________________________________
conv2d_176 (Conv2D)             (None, 61, 61, 64)   27648       activation_144[0][0]             
__________________________________________________________________________________________________
batch_normalization_140 (BatchN (None, 61, 61, 32)   96          conv2d_171[0][0]                 
__________________________________________________________________________________________________
batch_normalization_142 (BatchN (None, 61, 61, 32)   96          conv2d_173[0][0]                 
__________________________________________________________________________________________________
batch_normalization_145 (BatchN (None, 61, 61, 64)   192         conv2d_176[0][0]                 
__________________________________________________________________________________________________
activation_140 (Activation)     (None, 61, 61, 32)   0           batch_normalization_140[0][0]    
__________________________________________________________________________________________________
activation_142 (Activation)     (None, 61, 61, 32)   0           batch_normalization_142[0][0]    
__________________________________________________________________________________________________
activation_145 (Activation)     (None, 61, 61, 64)   0           batch_normalization_145[0][0]    
__________________________________________________________________________________________________
block35_6_mixed (Concatenate)   (None, 61, 61, 128)  0           activation_140[0][0]             
                                                                 activation_142[0][0]             
                                                                 activation_145[0][0]             
__________________________________________________________________________________________________
block35_6_conv (Conv2D)         (None, 61, 61, 320)  41280       block35_6_mixed[0][0]            
__________________________________________________________________________________________________
block35_6 (Lambda)              (None, 61, 61, 320)  0           block35_5_ac[0][0]               
                                                                 block35_6_conv[0][0]             
__________________________________________________________________________________________________
block35_6_ac (Activation)       (None, 61, 61, 320)  0           block35_6[0][0]                  
__________________________________________________________________________________________________
conv2d_180 (Conv2D)             (None, 61, 61, 32)   10240       block35_6_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_149 (BatchN (None, 61, 61, 32)   96          conv2d_180[0][0]                 
__________________________________________________________________________________________________
activation_149 (Activation)     (None, 61, 61, 32)   0           batch_normalization_149[0][0]    
__________________________________________________________________________________________________
conv2d_178 (Conv2D)             (None, 61, 61, 32)   10240       block35_6_ac[0][0]               
__________________________________________________________________________________________________
conv2d_181 (Conv2D)             (None, 61, 61, 48)   13824       activation_149[0][0]             
__________________________________________________________________________________________________
batch_normalization_147 (BatchN (None, 61, 61, 32)   96          conv2d_178[0][0]                 
__________________________________________________________________________________________________
batch_normalization_150 (BatchN (None, 61, 61, 48)   144         conv2d_181[0][0]                 
__________________________________________________________________________________________________
activation_147 (Activation)     (None, 61, 61, 32)   0           batch_normalization_147[0][0]    
__________________________________________________________________________________________________
activation_150 (Activation)     (None, 61, 61, 48)   0           batch_normalization_150[0][0]    
__________________________________________________________________________________________________
conv2d_177 (Conv2D)             (None, 61, 61, 32)   10240       block35_6_ac[0][0]               
__________________________________________________________________________________________________
conv2d_179 (Conv2D)             (None, 61, 61, 32)   9216        activation_147[0][0]             
__________________________________________________________________________________________________
conv2d_182 (Conv2D)             (None, 61, 61, 64)   27648       activation_150[0][0]             
__________________________________________________________________________________________________
batch_normalization_146 (BatchN (None, 61, 61, 32)   96          conv2d_177[0][0]                 
__________________________________________________________________________________________________
batch_normalization_148 (BatchN (None, 61, 61, 32)   96          conv2d_179[0][0]                 
__________________________________________________________________________________________________
batch_normalization_151 (BatchN (None, 61, 61, 64)   192         conv2d_182[0][0]                 
__________________________________________________________________________________________________
activation_146 (Activation)     (None, 61, 61, 32)   0           batch_normalization_146[0][0]    
__________________________________________________________________________________________________
activation_148 (Activation)     (None, 61, 61, 32)   0           batch_normalization_148[0][0]    
__________________________________________________________________________________________________
activation_151 (Activation)     (None, 61, 61, 64)   0           batch_normalization_151[0][0]    
__________________________________________________________________________________________________
block35_7_mixed (Concatenate)   (None, 61, 61, 128)  0           activation_146[0][0]             
                                                                 activation_148[0][0]             
                                                                 activation_151[0][0]             
__________________________________________________________________________________________________
block35_7_conv (Conv2D)         (None, 61, 61, 320)  41280       block35_7_mixed[0][0]            
__________________________________________________________________________________________________
block35_7 (Lambda)              (None, 61, 61, 320)  0           block35_6_ac[0][0]               
                                                                 block35_7_conv[0][0]             
__________________________________________________________________________________________________
block35_7_ac (Activation)       (None, 61, 61, 320)  0           block35_7[0][0]                  
__________________________________________________________________________________________________
conv2d_186 (Conv2D)             (None, 61, 61, 32)   10240       block35_7_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_155 (BatchN (None, 61, 61, 32)   96          conv2d_186[0][0]                 
__________________________________________________________________________________________________
activation_155 (Activation)     (None, 61, 61, 32)   0           batch_normalization_155[0][0]    
__________________________________________________________________________________________________
conv2d_184 (Conv2D)             (None, 61, 61, 32)   10240       block35_7_ac[0][0]               
__________________________________________________________________________________________________
conv2d_187 (Conv2D)             (None, 61, 61, 48)   13824       activation_155[0][0]             
__________________________________________________________________________________________________
batch_normalization_153 (BatchN (None, 61, 61, 32)   96          conv2d_184[0][0]                 
__________________________________________________________________________________________________
batch_normalization_156 (BatchN (None, 61, 61, 48)   144         conv2d_187[0][0]                 
__________________________________________________________________________________________________
activation_153 (Activation)     (None, 61, 61, 32)   0           batch_normalization_153[0][0]    
__________________________________________________________________________________________________
activation_156 (Activation)     (None, 61, 61, 48)   0           batch_normalization_156[0][0]    
__________________________________________________________________________________________________
conv2d_183 (Conv2D)             (None, 61, 61, 32)   10240       block35_7_ac[0][0]               
__________________________________________________________________________________________________
conv2d_185 (Conv2D)             (None, 61, 61, 32)   9216        activation_153[0][0]             
__________________________________________________________________________________________________
conv2d_188 (Conv2D)             (None, 61, 61, 64)   27648       activation_156[0][0]             
__________________________________________________________________________________________________
batch_normalization_152 (BatchN (None, 61, 61, 32)   96          conv2d_183[0][0]                 
__________________________________________________________________________________________________
batch_normalization_154 (BatchN (None, 61, 61, 32)   96          conv2d_185[0][0]                 
__________________________________________________________________________________________________
batch_normalization_157 (BatchN (None, 61, 61, 64)   192         conv2d_188[0][0]                 
__________________________________________________________________________________________________
activation_152 (Activation)     (None, 61, 61, 32)   0           batch_normalization_152[0][0]    
__________________________________________________________________________________________________
activation_154 (Activation)     (None, 61, 61, 32)   0           batch_normalization_154[0][0]    
__________________________________________________________________________________________________
activation_157 (Activation)     (None, 61, 61, 64)   0           batch_normalization_157[0][0]    
__________________________________________________________________________________________________
block35_8_mixed (Concatenate)   (None, 61, 61, 128)  0           activation_152[0][0]             
                                                                 activation_154[0][0]             
                                                                 activation_157[0][0]             
__________________________________________________________________________________________________
block35_8_conv (Conv2D)         (None, 61, 61, 320)  41280       block35_8_mixed[0][0]            
__________________________________________________________________________________________________
block35_8 (Lambda)              (None, 61, 61, 320)  0           block35_7_ac[0][0]               
                                                                 block35_8_conv[0][0]             
__________________________________________________________________________________________________
block35_8_ac (Activation)       (None, 61, 61, 320)  0           block35_8[0][0]                  
__________________________________________________________________________________________________
conv2d_192 (Conv2D)             (None, 61, 61, 32)   10240       block35_8_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_161 (BatchN (None, 61, 61, 32)   96          conv2d_192[0][0]                 
__________________________________________________________________________________________________
activation_161 (Activation)     (None, 61, 61, 32)   0           batch_normalization_161[0][0]    
__________________________________________________________________________________________________
conv2d_190 (Conv2D)             (None, 61, 61, 32)   10240       block35_8_ac[0][0]               
__________________________________________________________________________________________________
conv2d_193 (Conv2D)             (None, 61, 61, 48)   13824       activation_161[0][0]             
__________________________________________________________________________________________________
batch_normalization_159 (BatchN (None, 61, 61, 32)   96          conv2d_190[0][0]                 
__________________________________________________________________________________________________
batch_normalization_162 (BatchN (None, 61, 61, 48)   144         conv2d_193[0][0]                 
__________________________________________________________________________________________________
activation_159 (Activation)     (None, 61, 61, 32)   0           batch_normalization_159[0][0]    
__________________________________________________________________________________________________
activation_162 (Activation)     (None, 61, 61, 48)   0           batch_normalization_162[0][0]    
__________________________________________________________________________________________________
conv2d_189 (Conv2D)             (None, 61, 61, 32)   10240       block35_8_ac[0][0]               
__________________________________________________________________________________________________
conv2d_191 (Conv2D)             (None, 61, 61, 32)   9216        activation_159[0][0]             
__________________________________________________________________________________________________
conv2d_194 (Conv2D)             (None, 61, 61, 64)   27648       activation_162[0][0]             
__________________________________________________________________________________________________
batch_normalization_158 (BatchN (None, 61, 61, 32)   96          conv2d_189[0][0]                 
__________________________________________________________________________________________________
batch_normalization_160 (BatchN (None, 61, 61, 32)   96          conv2d_191[0][0]                 
__________________________________________________________________________________________________
batch_normalization_163 (BatchN (None, 61, 61, 64)   192         conv2d_194[0][0]                 
__________________________________________________________________________________________________
activation_158 (Activation)     (None, 61, 61, 32)   0           batch_normalization_158[0][0]    
__________________________________________________________________________________________________
activation_160 (Activation)     (None, 61, 61, 32)   0           batch_normalization_160[0][0]    
__________________________________________________________________________________________________
activation_163 (Activation)     (None, 61, 61, 64)   0           batch_normalization_163[0][0]    
__________________________________________________________________________________________________
block35_9_mixed (Concatenate)   (None, 61, 61, 128)  0           activation_158[0][0]             
                                                                 activation_160[0][0]             
                                                                 activation_163[0][0]             
__________________________________________________________________________________________________
block35_9_conv (Conv2D)         (None, 61, 61, 320)  41280       block35_9_mixed[0][0]            
__________________________________________________________________________________________________
block35_9 (Lambda)              (None, 61, 61, 320)  0           block35_8_ac[0][0]               
                                                                 block35_9_conv[0][0]             
__________________________________________________________________________________________________
block35_9_ac (Activation)       (None, 61, 61, 320)  0           block35_9[0][0]                  
__________________________________________________________________________________________________
conv2d_198 (Conv2D)             (None, 61, 61, 32)   10240       block35_9_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_167 (BatchN (None, 61, 61, 32)   96          conv2d_198[0][0]                 
__________________________________________________________________________________________________
activation_167 (Activation)     (None, 61, 61, 32)   0           batch_normalization_167[0][0]    
__________________________________________________________________________________________________
conv2d_196 (Conv2D)             (None, 61, 61, 32)   10240       block35_9_ac[0][0]               
__________________________________________________________________________________________________
conv2d_199 (Conv2D)             (None, 61, 61, 48)   13824       activation_167[0][0]             
__________________________________________________________________________________________________
batch_normalization_165 (BatchN (None, 61, 61, 32)   96          conv2d_196[0][0]                 
__________________________________________________________________________________________________
batch_normalization_168 (BatchN (None, 61, 61, 48)   144         conv2d_199[0][0]                 
__________________________________________________________________________________________________
activation_165 (Activation)     (None, 61, 61, 32)   0           batch_normalization_165[0][0]    
__________________________________________________________________________________________________
activation_168 (Activation)     (None, 61, 61, 48)   0           batch_normalization_168[0][0]    
__________________________________________________________________________________________________
conv2d_195 (Conv2D)             (None, 61, 61, 32)   10240       block35_9_ac[0][0]               
__________________________________________________________________________________________________
conv2d_197 (Conv2D)             (None, 61, 61, 32)   9216        activation_165[0][0]             
__________________________________________________________________________________________________
conv2d_200 (Conv2D)             (None, 61, 61, 64)   27648       activation_168[0][0]             
__________________________________________________________________________________________________
batch_normalization_164 (BatchN (None, 61, 61, 32)   96          conv2d_195[0][0]                 
__________________________________________________________________________________________________
batch_normalization_166 (BatchN (None, 61, 61, 32)   96          conv2d_197[0][0]                 
__________________________________________________________________________________________________
batch_normalization_169 (BatchN (None, 61, 61, 64)   192         conv2d_200[0][0]                 
__________________________________________________________________________________________________
activation_164 (Activation)     (None, 61, 61, 32)   0           batch_normalization_164[0][0]    
__________________________________________________________________________________________________
activation_166 (Activation)     (None, 61, 61, 32)   0           batch_normalization_166[0][0]    
__________________________________________________________________________________________________
activation_169 (Activation)     (None, 61, 61, 64)   0           batch_normalization_169[0][0]    
__________________________________________________________________________________________________
block35_10_mixed (Concatenate)  (None, 61, 61, 128)  0           activation_164[0][0]             
                                                                 activation_166[0][0]             
                                                                 activation_169[0][0]             
__________________________________________________________________________________________________
block35_10_conv (Conv2D)        (None, 61, 61, 320)  41280       block35_10_mixed[0][0]           
__________________________________________________________________________________________________
block35_10 (Lambda)             (None, 61, 61, 320)  0           block35_9_ac[0][0]               
                                                                 block35_10_conv[0][0]            
__________________________________________________________________________________________________
block35_10_ac (Activation)      (None, 61, 61, 320)  0           block35_10[0][0]                 
__________________________________________________________________________________________________
conv2d_202 (Conv2D)             (None, 61, 61, 256)  81920       block35_10_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_171 (BatchN (None, 61, 61, 256)  768         conv2d_202[0][0]                 
__________________________________________________________________________________________________
activation_171 (Activation)     (None, 61, 61, 256)  0           batch_normalization_171[0][0]    
__________________________________________________________________________________________________
conv2d_203 (Conv2D)             (None, 61, 61, 256)  589824      activation_171[0][0]             
__________________________________________________________________________________________________
batch_normalization_172 (BatchN (None, 61, 61, 256)  768         conv2d_203[0][0]                 
__________________________________________________________________________________________________
activation_172 (Activation)     (None, 61, 61, 256)  0           batch_normalization_172[0][0]    
__________________________________________________________________________________________________
conv2d_201 (Conv2D)             (None, 30, 30, 384)  1105920     block35_10_ac[0][0]              
__________________________________________________________________________________________________
conv2d_204 (Conv2D)             (None, 30, 30, 384)  884736      activation_172[0][0]             
__________________________________________________________________________________________________
batch_normalization_170 (BatchN (None, 30, 30, 384)  1152        conv2d_201[0][0]                 
__________________________________________________________________________________________________
batch_normalization_173 (BatchN (None, 30, 30, 384)  1152        conv2d_204[0][0]                 
__________________________________________________________________________________________________
activation_170 (Activation)     (None, 30, 30, 384)  0           batch_normalization_170[0][0]    
__________________________________________________________________________________________________
activation_173 (Activation)     (None, 30, 30, 384)  0           batch_normalization_173[0][0]    
__________________________________________________________________________________________________
max_pooling2d_16 (MaxPooling2D) (None, 30, 30, 320)  0           block35_10_ac[0][0]              
__________________________________________________________________________________________________
mixed_6a (Concatenate)          (None, 30, 30, 1088) 0           activation_170[0][0]             
                                                                 activation_173[0][0]             
                                                                 max_pooling2d_16[0][0]           
__________________________________________________________________________________________________
conv2d_206 (Conv2D)             (None, 30, 30, 128)  139264      mixed_6a[0][0]                   
__________________________________________________________________________________________________
batch_normalization_175 (BatchN (None, 30, 30, 128)  384         conv2d_206[0][0]                 
__________________________________________________________________________________________________
activation_175 (Activation)     (None, 30, 30, 128)  0           batch_normalization_175[0][0]    
__________________________________________________________________________________________________
conv2d_207 (Conv2D)             (None, 30, 30, 160)  143360      activation_175[0][0]             
__________________________________________________________________________________________________
batch_normalization_176 (BatchN (None, 30, 30, 160)  480         conv2d_207[0][0]                 
__________________________________________________________________________________________________
activation_176 (Activation)     (None, 30, 30, 160)  0           batch_normalization_176[0][0]    
__________________________________________________________________________________________________
conv2d_205 (Conv2D)             (None, 30, 30, 192)  208896      mixed_6a[0][0]                   
__________________________________________________________________________________________________
conv2d_208 (Conv2D)             (None, 30, 30, 192)  215040      activation_176[0][0]             
__________________________________________________________________________________________________
batch_normalization_174 (BatchN (None, 30, 30, 192)  576         conv2d_205[0][0]                 
__________________________________________________________________________________________________
batch_normalization_177 (BatchN (None, 30, 30, 192)  576         conv2d_208[0][0]                 
__________________________________________________________________________________________________
activation_174 (Activation)     (None, 30, 30, 192)  0           batch_normalization_174[0][0]    
__________________________________________________________________________________________________
activation_177 (Activation)     (None, 30, 30, 192)  0           batch_normalization_177[0][0]    
__________________________________________________________________________________________________
block17_1_mixed (Concatenate)   (None, 30, 30, 384)  0           activation_174[0][0]             
                                                                 activation_177[0][0]             
__________________________________________________________________________________________________
block17_1_conv (Conv2D)         (None, 30, 30, 1088) 418880      block17_1_mixed[0][0]            
__________________________________________________________________________________________________
block17_1 (Lambda)              (None, 30, 30, 1088) 0           mixed_6a[0][0]                   
                                                                 block17_1_conv[0][0]             
__________________________________________________________________________________________________
block17_1_ac (Activation)       (None, 30, 30, 1088) 0           block17_1[0][0]                  
__________________________________________________________________________________________________
conv2d_210 (Conv2D)             (None, 30, 30, 128)  139264      block17_1_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_179 (BatchN (None, 30, 30, 128)  384         conv2d_210[0][0]                 
__________________________________________________________________________________________________
activation_179 (Activation)     (None, 30, 30, 128)  0           batch_normalization_179[0][0]    
__________________________________________________________________________________________________
conv2d_211 (Conv2D)             (None, 30, 30, 160)  143360      activation_179[0][0]             
__________________________________________________________________________________________________
batch_normalization_180 (BatchN (None, 30, 30, 160)  480         conv2d_211[0][0]                 
__________________________________________________________________________________________________
activation_180 (Activation)     (None, 30, 30, 160)  0           batch_normalization_180[0][0]    
__________________________________________________________________________________________________
conv2d_209 (Conv2D)             (None, 30, 30, 192)  208896      block17_1_ac[0][0]               
__________________________________________________________________________________________________
conv2d_212 (Conv2D)             (None, 30, 30, 192)  215040      activation_180[0][0]             
__________________________________________________________________________________________________
batch_normalization_178 (BatchN (None, 30, 30, 192)  576         conv2d_209[0][0]                 
__________________________________________________________________________________________________
batch_normalization_181 (BatchN (None, 30, 30, 192)  576         conv2d_212[0][0]                 
__________________________________________________________________________________________________
activation_178 (Activation)     (None, 30, 30, 192)  0           batch_normalization_178[0][0]    
__________________________________________________________________________________________________
activation_181 (Activation)     (None, 30, 30, 192)  0           batch_normalization_181[0][0]    
__________________________________________________________________________________________________
block17_2_mixed (Concatenate)   (None, 30, 30, 384)  0           activation_178[0][0]             
                                                                 activation_181[0][0]             
__________________________________________________________________________________________________
block17_2_conv (Conv2D)         (None, 30, 30, 1088) 418880      block17_2_mixed[0][0]            
__________________________________________________________________________________________________
block17_2 (Lambda)              (None, 30, 30, 1088) 0           block17_1_ac[0][0]               
                                                                 block17_2_conv[0][0]             
__________________________________________________________________________________________________
block17_2_ac (Activation)       (None, 30, 30, 1088) 0           block17_2[0][0]                  
__________________________________________________________________________________________________
conv2d_214 (Conv2D)             (None, 30, 30, 128)  139264      block17_2_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_183 (BatchN (None, 30, 30, 128)  384         conv2d_214[0][0]                 
__________________________________________________________________________________________________
activation_183 (Activation)     (None, 30, 30, 128)  0           batch_normalization_183[0][0]    
__________________________________________________________________________________________________
conv2d_215 (Conv2D)             (None, 30, 30, 160)  143360      activation_183[0][0]             
__________________________________________________________________________________________________
batch_normalization_184 (BatchN (None, 30, 30, 160)  480         conv2d_215[0][0]                 
__________________________________________________________________________________________________
activation_184 (Activation)     (None, 30, 30, 160)  0           batch_normalization_184[0][0]    
__________________________________________________________________________________________________
conv2d_213 (Conv2D)             (None, 30, 30, 192)  208896      block17_2_ac[0][0]               
__________________________________________________________________________________________________
conv2d_216 (Conv2D)             (None, 30, 30, 192)  215040      activation_184[0][0]             
__________________________________________________________________________________________________
batch_normalization_182 (BatchN (None, 30, 30, 192)  576         conv2d_213[0][0]                 
__________________________________________________________________________________________________
batch_normalization_185 (BatchN (None, 30, 30, 192)  576         conv2d_216[0][0]                 
__________________________________________________________________________________________________
activation_182 (Activation)     (None, 30, 30, 192)  0           batch_normalization_182[0][0]    
__________________________________________________________________________________________________
activation_185 (Activation)     (None, 30, 30, 192)  0           batch_normalization_185[0][0]    
__________________________________________________________________________________________________
block17_3_mixed (Concatenate)   (None, 30, 30, 384)  0           activation_182[0][0]             
                                                                 activation_185[0][0]             
__________________________________________________________________________________________________
block17_3_conv (Conv2D)         (None, 30, 30, 1088) 418880      block17_3_mixed[0][0]            
__________________________________________________________________________________________________
block17_3 (Lambda)              (None, 30, 30, 1088) 0           block17_2_ac[0][0]               
                                                                 block17_3_conv[0][0]             
__________________________________________________________________________________________________
block17_3_ac (Activation)       (None, 30, 30, 1088) 0           block17_3[0][0]                  
__________________________________________________________________________________________________
conv2d_218 (Conv2D)             (None, 30, 30, 128)  139264      block17_3_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_187 (BatchN (None, 30, 30, 128)  384         conv2d_218[0][0]                 
__________________________________________________________________________________________________
activation_187 (Activation)     (None, 30, 30, 128)  0           batch_normalization_187[0][0]    
__________________________________________________________________________________________________
conv2d_219 (Conv2D)             (None, 30, 30, 160)  143360      activation_187[0][0]             
__________________________________________________________________________________________________
batch_normalization_188 (BatchN (None, 30, 30, 160)  480         conv2d_219[0][0]                 
__________________________________________________________________________________________________
activation_188 (Activation)     (None, 30, 30, 160)  0           batch_normalization_188[0][0]    
__________________________________________________________________________________________________
conv2d_217 (Conv2D)             (None, 30, 30, 192)  208896      block17_3_ac[0][0]               
__________________________________________________________________________________________________
conv2d_220 (Conv2D)             (None, 30, 30, 192)  215040      activation_188[0][0]             
__________________________________________________________________________________________________
batch_normalization_186 (BatchN (None, 30, 30, 192)  576         conv2d_217[0][0]                 
__________________________________________________________________________________________________
batch_normalization_189 (BatchN (None, 30, 30, 192)  576         conv2d_220[0][0]                 
__________________________________________________________________________________________________
activation_186 (Activation)     (None, 30, 30, 192)  0           batch_normalization_186[0][0]    
__________________________________________________________________________________________________
activation_189 (Activation)     (None, 30, 30, 192)  0           batch_normalization_189[0][0]    
__________________________________________________________________________________________________
block17_4_mixed (Concatenate)   (None, 30, 30, 384)  0           activation_186[0][0]             
                                                                 activation_189[0][0]             
__________________________________________________________________________________________________
block17_4_conv (Conv2D)         (None, 30, 30, 1088) 418880      block17_4_mixed[0][0]            
__________________________________________________________________________________________________
block17_4 (Lambda)              (None, 30, 30, 1088) 0           block17_3_ac[0][0]               
                                                                 block17_4_conv[0][0]             
__________________________________________________________________________________________________
block17_4_ac (Activation)       (None, 30, 30, 1088) 0           block17_4[0][0]                  
__________________________________________________________________________________________________
conv2d_222 (Conv2D)             (None, 30, 30, 128)  139264      block17_4_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_191 (BatchN (None, 30, 30, 128)  384         conv2d_222[0][0]                 
__________________________________________________________________________________________________
activation_191 (Activation)     (None, 30, 30, 128)  0           batch_normalization_191[0][0]    
__________________________________________________________________________________________________
conv2d_223 (Conv2D)             (None, 30, 30, 160)  143360      activation_191[0][0]             
__________________________________________________________________________________________________
batch_normalization_192 (BatchN (None, 30, 30, 160)  480         conv2d_223[0][0]                 
__________________________________________________________________________________________________
activation_192 (Activation)     (None, 30, 30, 160)  0           batch_normalization_192[0][0]    
__________________________________________________________________________________________________
conv2d_221 (Conv2D)             (None, 30, 30, 192)  208896      block17_4_ac[0][0]               
__________________________________________________________________________________________________
conv2d_224 (Conv2D)             (None, 30, 30, 192)  215040      activation_192[0][0]             
__________________________________________________________________________________________________
batch_normalization_190 (BatchN (None, 30, 30, 192)  576         conv2d_221[0][0]                 
__________________________________________________________________________________________________
batch_normalization_193 (BatchN (None, 30, 30, 192)  576         conv2d_224[0][0]                 
__________________________________________________________________________________________________
activation_190 (Activation)     (None, 30, 30, 192)  0           batch_normalization_190[0][0]    
__________________________________________________________________________________________________
activation_193 (Activation)     (None, 30, 30, 192)  0           batch_normalization_193[0][0]    
__________________________________________________________________________________________________
block17_5_mixed (Concatenate)   (None, 30, 30, 384)  0           activation_190[0][0]             
                                                                 activation_193[0][0]             
__________________________________________________________________________________________________
block17_5_conv (Conv2D)         (None, 30, 30, 1088) 418880      block17_5_mixed[0][0]            
__________________________________________________________________________________________________
block17_5 (Lambda)              (None, 30, 30, 1088) 0           block17_4_ac[0][0]               
                                                                 block17_5_conv[0][0]             
__________________________________________________________________________________________________
block17_5_ac (Activation)       (None, 30, 30, 1088) 0           block17_5[0][0]                  
__________________________________________________________________________________________________
conv2d_226 (Conv2D)             (None, 30, 30, 128)  139264      block17_5_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_195 (BatchN (None, 30, 30, 128)  384         conv2d_226[0][0]                 
__________________________________________________________________________________________________
activation_195 (Activation)     (None, 30, 30, 128)  0           batch_normalization_195[0][0]    
__________________________________________________________________________________________________
conv2d_227 (Conv2D)             (None, 30, 30, 160)  143360      activation_195[0][0]             
__________________________________________________________________________________________________
batch_normalization_196 (BatchN (None, 30, 30, 160)  480         conv2d_227[0][0]                 
__________________________________________________________________________________________________
activation_196 (Activation)     (None, 30, 30, 160)  0           batch_normalization_196[0][0]    
__________________________________________________________________________________________________
conv2d_225 (Conv2D)             (None, 30, 30, 192)  208896      block17_5_ac[0][0]               
__________________________________________________________________________________________________
conv2d_228 (Conv2D)             (None, 30, 30, 192)  215040      activation_196[0][0]             
__________________________________________________________________________________________________
batch_normalization_194 (BatchN (None, 30, 30, 192)  576         conv2d_225[0][0]                 
__________________________________________________________________________________________________
batch_normalization_197 (BatchN (None, 30, 30, 192)  576         conv2d_228[0][0]                 
__________________________________________________________________________________________________
activation_194 (Activation)     (None, 30, 30, 192)  0           batch_normalization_194[0][0]    
__________________________________________________________________________________________________
activation_197 (Activation)     (None, 30, 30, 192)  0           batch_normalization_197[0][0]    
__________________________________________________________________________________________________
block17_6_mixed (Concatenate)   (None, 30, 30, 384)  0           activation_194[0][0]             
                                                                 activation_197[0][0]             
__________________________________________________________________________________________________
block17_6_conv (Conv2D)         (None, 30, 30, 1088) 418880      block17_6_mixed[0][0]            
__________________________________________________________________________________________________
block17_6 (Lambda)              (None, 30, 30, 1088) 0           block17_5_ac[0][0]               
                                                                 block17_6_conv[0][0]             
__________________________________________________________________________________________________
block17_6_ac (Activation)       (None, 30, 30, 1088) 0           block17_6[0][0]                  
__________________________________________________________________________________________________
conv2d_230 (Conv2D)             (None, 30, 30, 128)  139264      block17_6_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_199 (BatchN (None, 30, 30, 128)  384         conv2d_230[0][0]                 
__________________________________________________________________________________________________
activation_199 (Activation)     (None, 30, 30, 128)  0           batch_normalization_199[0][0]    
__________________________________________________________________________________________________
conv2d_231 (Conv2D)             (None, 30, 30, 160)  143360      activation_199[0][0]             
__________________________________________________________________________________________________
batch_normalization_200 (BatchN (None, 30, 30, 160)  480         conv2d_231[0][0]                 
__________________________________________________________________________________________________
activation_200 (Activation)     (None, 30, 30, 160)  0           batch_normalization_200[0][0]    
__________________________________________________________________________________________________
conv2d_229 (Conv2D)             (None, 30, 30, 192)  208896      block17_6_ac[0][0]               
__________________________________________________________________________________________________
conv2d_232 (Conv2D)             (None, 30, 30, 192)  215040      activation_200[0][0]             
__________________________________________________________________________________________________
batch_normalization_198 (BatchN (None, 30, 30, 192)  576         conv2d_229[0][0]                 
__________________________________________________________________________________________________
batch_normalization_201 (BatchN (None, 30, 30, 192)  576         conv2d_232[0][0]                 
__________________________________________________________________________________________________
activation_198 (Activation)     (None, 30, 30, 192)  0           batch_normalization_198[0][0]    
__________________________________________________________________________________________________
activation_201 (Activation)     (None, 30, 30, 192)  0           batch_normalization_201[0][0]    
__________________________________________________________________________________________________
block17_7_mixed (Concatenate)   (None, 30, 30, 384)  0           activation_198[0][0]             
                                                                 activation_201[0][0]             
__________________________________________________________________________________________________
block17_7_conv (Conv2D)         (None, 30, 30, 1088) 418880      block17_7_mixed[0][0]            
__________________________________________________________________________________________________
block17_7 (Lambda)              (None, 30, 30, 1088) 0           block17_6_ac[0][0]               
                                                                 block17_7_conv[0][0]             
__________________________________________________________________________________________________
block17_7_ac (Activation)       (None, 30, 30, 1088) 0           block17_7[0][0]                  
__________________________________________________________________________________________________
conv2d_234 (Conv2D)             (None, 30, 30, 128)  139264      block17_7_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_203 (BatchN (None, 30, 30, 128)  384         conv2d_234[0][0]                 
__________________________________________________________________________________________________
activation_203 (Activation)     (None, 30, 30, 128)  0           batch_normalization_203[0][0]    
__________________________________________________________________________________________________
conv2d_235 (Conv2D)             (None, 30, 30, 160)  143360      activation_203[0][0]             
__________________________________________________________________________________________________
batch_normalization_204 (BatchN (None, 30, 30, 160)  480         conv2d_235[0][0]                 
__________________________________________________________________________________________________
activation_204 (Activation)     (None, 30, 30, 160)  0           batch_normalization_204[0][0]    
__________________________________________________________________________________________________
conv2d_233 (Conv2D)             (None, 30, 30, 192)  208896      block17_7_ac[0][0]               
__________________________________________________________________________________________________
conv2d_236 (Conv2D)             (None, 30, 30, 192)  215040      activation_204[0][0]             
__________________________________________________________________________________________________
batch_normalization_202 (BatchN (None, 30, 30, 192)  576         conv2d_233[0][0]                 
__________________________________________________________________________________________________
batch_normalization_205 (BatchN (None, 30, 30, 192)  576         conv2d_236[0][0]                 
__________________________________________________________________________________________________
activation_202 (Activation)     (None, 30, 30, 192)  0           batch_normalization_202[0][0]    
__________________________________________________________________________________________________
activation_205 (Activation)     (None, 30, 30, 192)  0           batch_normalization_205[0][0]    
__________________________________________________________________________________________________
block17_8_mixed (Concatenate)   (None, 30, 30, 384)  0           activation_202[0][0]             
                                                                 activation_205[0][0]             
__________________________________________________________________________________________________
block17_8_conv (Conv2D)         (None, 30, 30, 1088) 418880      block17_8_mixed[0][0]            
__________________________________________________________________________________________________
block17_8 (Lambda)              (None, 30, 30, 1088) 0           block17_7_ac[0][0]               
                                                                 block17_8_conv[0][0]             
__________________________________________________________________________________________________
block17_8_ac (Activation)       (None, 30, 30, 1088) 0           block17_8[0][0]                  
__________________________________________________________________________________________________
conv2d_238 (Conv2D)             (None, 30, 30, 128)  139264      block17_8_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_207 (BatchN (None, 30, 30, 128)  384         conv2d_238[0][0]                 
__________________________________________________________________________________________________
activation_207 (Activation)     (None, 30, 30, 128)  0           batch_normalization_207[0][0]    
__________________________________________________________________________________________________
conv2d_239 (Conv2D)             (None, 30, 30, 160)  143360      activation_207[0][0]             
__________________________________________________________________________________________________
batch_normalization_208 (BatchN (None, 30, 30, 160)  480         conv2d_239[0][0]                 
__________________________________________________________________________________________________
activation_208 (Activation)     (None, 30, 30, 160)  0           batch_normalization_208[0][0]    
__________________________________________________________________________________________________
conv2d_237 (Conv2D)             (None, 30, 30, 192)  208896      block17_8_ac[0][0]               
__________________________________________________________________________________________________
conv2d_240 (Conv2D)             (None, 30, 30, 192)  215040      activation_208[0][0]             
__________________________________________________________________________________________________
batch_normalization_206 (BatchN (None, 30, 30, 192)  576         conv2d_237[0][0]                 
__________________________________________________________________________________________________
batch_normalization_209 (BatchN (None, 30, 30, 192)  576         conv2d_240[0][0]                 
__________________________________________________________________________________________________
activation_206 (Activation)     (None, 30, 30, 192)  0           batch_normalization_206[0][0]    
__________________________________________________________________________________________________
activation_209 (Activation)     (None, 30, 30, 192)  0           batch_normalization_209[0][0]    
__________________________________________________________________________________________________
block17_9_mixed (Concatenate)   (None, 30, 30, 384)  0           activation_206[0][0]             
                                                                 activation_209[0][0]             
__________________________________________________________________________________________________
block17_9_conv (Conv2D)         (None, 30, 30, 1088) 418880      block17_9_mixed[0][0]            
__________________________________________________________________________________________________
block17_9 (Lambda)              (None, 30, 30, 1088) 0           block17_8_ac[0][0]               
                                                                 block17_9_conv[0][0]             
__________________________________________________________________________________________________
block17_9_ac (Activation)       (None, 30, 30, 1088) 0           block17_9[0][0]                  
__________________________________________________________________________________________________
conv2d_242 (Conv2D)             (None, 30, 30, 128)  139264      block17_9_ac[0][0]               
__________________________________________________________________________________________________
batch_normalization_211 (BatchN (None, 30, 30, 128)  384         conv2d_242[0][0]                 
__________________________________________________________________________________________________
activation_211 (Activation)     (None, 30, 30, 128)  0           batch_normalization_211[0][0]    
__________________________________________________________________________________________________
conv2d_243 (Conv2D)             (None, 30, 30, 160)  143360      activation_211[0][0]             
__________________________________________________________________________________________________
batch_normalization_212 (BatchN (None, 30, 30, 160)  480         conv2d_243[0][0]                 
__________________________________________________________________________________________________
activation_212 (Activation)     (None, 30, 30, 160)  0           batch_normalization_212[0][0]    
__________________________________________________________________________________________________
conv2d_241 (Conv2D)             (None, 30, 30, 192)  208896      block17_9_ac[0][0]               
__________________________________________________________________________________________________
conv2d_244 (Conv2D)             (None, 30, 30, 192)  215040      activation_212[0][0]             
__________________________________________________________________________________________________
batch_normalization_210 (BatchN (None, 30, 30, 192)  576         conv2d_241[0][0]                 
__________________________________________________________________________________________________
batch_normalization_213 (BatchN (None, 30, 30, 192)  576         conv2d_244[0][0]                 
__________________________________________________________________________________________________
activation_210 (Activation)     (None, 30, 30, 192)  0           batch_normalization_210[0][0]    
__________________________________________________________________________________________________
activation_213 (Activation)     (None, 30, 30, 192)  0           batch_normalization_213[0][0]    
__________________________________________________________________________________________________
block17_10_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_210[0][0]             
                                                                 activation_213[0][0]             
__________________________________________________________________________________________________
block17_10_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_10_mixed[0][0]           
__________________________________________________________________________________________________
block17_10 (Lambda)             (None, 30, 30, 1088) 0           block17_9_ac[0][0]               
                                                                 block17_10_conv[0][0]            
__________________________________________________________________________________________________
block17_10_ac (Activation)      (None, 30, 30, 1088) 0           block17_10[0][0]                 
__________________________________________________________________________________________________
conv2d_246 (Conv2D)             (None, 30, 30, 128)  139264      block17_10_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_215 (BatchN (None, 30, 30, 128)  384         conv2d_246[0][0]                 
__________________________________________________________________________________________________
activation_215 (Activation)     (None, 30, 30, 128)  0           batch_normalization_215[0][0]    
__________________________________________________________________________________________________
conv2d_247 (Conv2D)             (None, 30, 30, 160)  143360      activation_215[0][0]             
__________________________________________________________________________________________________
batch_normalization_216 (BatchN (None, 30, 30, 160)  480         conv2d_247[0][0]                 
__________________________________________________________________________________________________
activation_216 (Activation)     (None, 30, 30, 160)  0           batch_normalization_216[0][0]    
__________________________________________________________________________________________________
conv2d_245 (Conv2D)             (None, 30, 30, 192)  208896      block17_10_ac[0][0]              
__________________________________________________________________________________________________
conv2d_248 (Conv2D)             (None, 30, 30, 192)  215040      activation_216[0][0]             
__________________________________________________________________________________________________
batch_normalization_214 (BatchN (None, 30, 30, 192)  576         conv2d_245[0][0]                 
__________________________________________________________________________________________________
batch_normalization_217 (BatchN (None, 30, 30, 192)  576         conv2d_248[0][0]                 
__________________________________________________________________________________________________
activation_214 (Activation)     (None, 30, 30, 192)  0           batch_normalization_214[0][0]    
__________________________________________________________________________________________________
activation_217 (Activation)     (None, 30, 30, 192)  0           batch_normalization_217[0][0]    
__________________________________________________________________________________________________
block17_11_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_214[0][0]             
                                                                 activation_217[0][0]             
__________________________________________________________________________________________________
block17_11_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_11_mixed[0][0]           
__________________________________________________________________________________________________
block17_11 (Lambda)             (None, 30, 30, 1088) 0           block17_10_ac[0][0]              
                                                                 block17_11_conv[0][0]            
__________________________________________________________________________________________________
block17_11_ac (Activation)      (None, 30, 30, 1088) 0           block17_11[0][0]                 
__________________________________________________________________________________________________
conv2d_250 (Conv2D)             (None, 30, 30, 128)  139264      block17_11_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_219 (BatchN (None, 30, 30, 128)  384         conv2d_250[0][0]                 
__________________________________________________________________________________________________
activation_219 (Activation)     (None, 30, 30, 128)  0           batch_normalization_219[0][0]    
__________________________________________________________________________________________________
conv2d_251 (Conv2D)             (None, 30, 30, 160)  143360      activation_219[0][0]             
__________________________________________________________________________________________________
batch_normalization_220 (BatchN (None, 30, 30, 160)  480         conv2d_251[0][0]                 
__________________________________________________________________________________________________
activation_220 (Activation)     (None, 30, 30, 160)  0           batch_normalization_220[0][0]    
__________________________________________________________________________________________________
conv2d_249 (Conv2D)             (None, 30, 30, 192)  208896      block17_11_ac[0][0]              
__________________________________________________________________________________________________
conv2d_252 (Conv2D)             (None, 30, 30, 192)  215040      activation_220[0][0]             
__________________________________________________________________________________________________
batch_normalization_218 (BatchN (None, 30, 30, 192)  576         conv2d_249[0][0]                 
__________________________________________________________________________________________________
batch_normalization_221 (BatchN (None, 30, 30, 192)  576         conv2d_252[0][0]                 
__________________________________________________________________________________________________
activation_218 (Activation)     (None, 30, 30, 192)  0           batch_normalization_218[0][0]    
__________________________________________________________________________________________________
activation_221 (Activation)     (None, 30, 30, 192)  0           batch_normalization_221[0][0]    
__________________________________________________________________________________________________
block17_12_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_218[0][0]             
                                                                 activation_221[0][0]             
__________________________________________________________________________________________________
block17_12_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_12_mixed[0][0]           
__________________________________________________________________________________________________
block17_12 (Lambda)             (None, 30, 30, 1088) 0           block17_11_ac[0][0]              
                                                                 block17_12_conv[0][0]            
__________________________________________________________________________________________________
block17_12_ac (Activation)      (None, 30, 30, 1088) 0           block17_12[0][0]                 
__________________________________________________________________________________________________
conv2d_254 (Conv2D)             (None, 30, 30, 128)  139264      block17_12_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_223 (BatchN (None, 30, 30, 128)  384         conv2d_254[0][0]                 
__________________________________________________________________________________________________
activation_223 (Activation)     (None, 30, 30, 128)  0           batch_normalization_223[0][0]    
__________________________________________________________________________________________________
conv2d_255 (Conv2D)             (None, 30, 30, 160)  143360      activation_223[0][0]             
__________________________________________________________________________________________________
batch_normalization_224 (BatchN (None, 30, 30, 160)  480         conv2d_255[0][0]                 
__________________________________________________________________________________________________
activation_224 (Activation)     (None, 30, 30, 160)  0           batch_normalization_224[0][0]    
__________________________________________________________________________________________________
conv2d_253 (Conv2D)             (None, 30, 30, 192)  208896      block17_12_ac[0][0]              
__________________________________________________________________________________________________
conv2d_256 (Conv2D)             (None, 30, 30, 192)  215040      activation_224[0][0]             
__________________________________________________________________________________________________
batch_normalization_222 (BatchN (None, 30, 30, 192)  576         conv2d_253[0][0]                 
__________________________________________________________________________________________________
batch_normalization_225 (BatchN (None, 30, 30, 192)  576         conv2d_256[0][0]                 
__________________________________________________________________________________________________
activation_222 (Activation)     (None, 30, 30, 192)  0           batch_normalization_222[0][0]    
__________________________________________________________________________________________________
activation_225 (Activation)     (None, 30, 30, 192)  0           batch_normalization_225[0][0]    
__________________________________________________________________________________________________
block17_13_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_222[0][0]             
                                                                 activation_225[0][0]             
__________________________________________________________________________________________________
block17_13_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_13_mixed[0][0]           
__________________________________________________________________________________________________
block17_13 (Lambda)             (None, 30, 30, 1088) 0           block17_12_ac[0][0]              
                                                                 block17_13_conv[0][0]            
__________________________________________________________________________________________________
block17_13_ac (Activation)      (None, 30, 30, 1088) 0           block17_13[0][0]                 
__________________________________________________________________________________________________
conv2d_258 (Conv2D)             (None, 30, 30, 128)  139264      block17_13_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_227 (BatchN (None, 30, 30, 128)  384         conv2d_258[0][0]                 
__________________________________________________________________________________________________
activation_227 (Activation)     (None, 30, 30, 128)  0           batch_normalization_227[0][0]    
__________________________________________________________________________________________________
conv2d_259 (Conv2D)             (None, 30, 30, 160)  143360      activation_227[0][0]             
__________________________________________________________________________________________________
batch_normalization_228 (BatchN (None, 30, 30, 160)  480         conv2d_259[0][0]                 
__________________________________________________________________________________________________
activation_228 (Activation)     (None, 30, 30, 160)  0           batch_normalization_228[0][0]    
__________________________________________________________________________________________________
conv2d_257 (Conv2D)             (None, 30, 30, 192)  208896      block17_13_ac[0][0]              
__________________________________________________________________________________________________
conv2d_260 (Conv2D)             (None, 30, 30, 192)  215040      activation_228[0][0]             
__________________________________________________________________________________________________
batch_normalization_226 (BatchN (None, 30, 30, 192)  576         conv2d_257[0][0]                 
__________________________________________________________________________________________________
batch_normalization_229 (BatchN (None, 30, 30, 192)  576         conv2d_260[0][0]                 
__________________________________________________________________________________________________
activation_226 (Activation)     (None, 30, 30, 192)  0           batch_normalization_226[0][0]    
__________________________________________________________________________________________________
activation_229 (Activation)     (None, 30, 30, 192)  0           batch_normalization_229[0][0]    
__________________________________________________________________________________________________
block17_14_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_226[0][0]             
                                                                 activation_229[0][0]             
__________________________________________________________________________________________________
block17_14_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_14_mixed[0][0]           
__________________________________________________________________________________________________
block17_14 (Lambda)             (None, 30, 30, 1088) 0           block17_13_ac[0][0]              
                                                                 block17_14_conv[0][0]            
__________________________________________________________________________________________________
block17_14_ac (Activation)      (None, 30, 30, 1088) 0           block17_14[0][0]                 
__________________________________________________________________________________________________
conv2d_262 (Conv2D)             (None, 30, 30, 128)  139264      block17_14_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_231 (BatchN (None, 30, 30, 128)  384         conv2d_262[0][0]                 
__________________________________________________________________________________________________
activation_231 (Activation)     (None, 30, 30, 128)  0           batch_normalization_231[0][0]    
__________________________________________________________________________________________________
conv2d_263 (Conv2D)             (None, 30, 30, 160)  143360      activation_231[0][0]             
__________________________________________________________________________________________________
batch_normalization_232 (BatchN (None, 30, 30, 160)  480         conv2d_263[0][0]                 
__________________________________________________________________________________________________
activation_232 (Activation)     (None, 30, 30, 160)  0           batch_normalization_232[0][0]    
__________________________________________________________________________________________________
conv2d_261 (Conv2D)             (None, 30, 30, 192)  208896      block17_14_ac[0][0]              
__________________________________________________________________________________________________
conv2d_264 (Conv2D)             (None, 30, 30, 192)  215040      activation_232[0][0]             
__________________________________________________________________________________________________
batch_normalization_230 (BatchN (None, 30, 30, 192)  576         conv2d_261[0][0]                 
__________________________________________________________________________________________________
batch_normalization_233 (BatchN (None, 30, 30, 192)  576         conv2d_264[0][0]                 
__________________________________________________________________________________________________
activation_230 (Activation)     (None, 30, 30, 192)  0           batch_normalization_230[0][0]    
__________________________________________________________________________________________________
activation_233 (Activation)     (None, 30, 30, 192)  0           batch_normalization_233[0][0]    
__________________________________________________________________________________________________
block17_15_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_230[0][0]             
                                                                 activation_233[0][0]             
__________________________________________________________________________________________________
block17_15_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_15_mixed[0][0]           
__________________________________________________________________________________________________
block17_15 (Lambda)             (None, 30, 30, 1088) 0           block17_14_ac[0][0]              
                                                                 block17_15_conv[0][0]            
__________________________________________________________________________________________________
block17_15_ac (Activation)      (None, 30, 30, 1088) 0           block17_15[0][0]                 
__________________________________________________________________________________________________
conv2d_266 (Conv2D)             (None, 30, 30, 128)  139264      block17_15_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_235 (BatchN (None, 30, 30, 128)  384         conv2d_266[0][0]                 
__________________________________________________________________________________________________
activation_235 (Activation)     (None, 30, 30, 128)  0           batch_normalization_235[0][0]    
__________________________________________________________________________________________________
conv2d_267 (Conv2D)             (None, 30, 30, 160)  143360      activation_235[0][0]             
__________________________________________________________________________________________________
batch_normalization_236 (BatchN (None, 30, 30, 160)  480         conv2d_267[0][0]                 
__________________________________________________________________________________________________
activation_236 (Activation)     (None, 30, 30, 160)  0           batch_normalization_236[0][0]    
__________________________________________________________________________________________________
conv2d_265 (Conv2D)             (None, 30, 30, 192)  208896      block17_15_ac[0][0]              
__________________________________________________________________________________________________
conv2d_268 (Conv2D)             (None, 30, 30, 192)  215040      activation_236[0][0]             
__________________________________________________________________________________________________
batch_normalization_234 (BatchN (None, 30, 30, 192)  576         conv2d_265[0][0]                 
__________________________________________________________________________________________________
batch_normalization_237 (BatchN (None, 30, 30, 192)  576         conv2d_268[0][0]                 
__________________________________________________________________________________________________
activation_234 (Activation)     (None, 30, 30, 192)  0           batch_normalization_234[0][0]    
__________________________________________________________________________________________________
activation_237 (Activation)     (None, 30, 30, 192)  0           batch_normalization_237[0][0]    
__________________________________________________________________________________________________
block17_16_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_234[0][0]             
                                                                 activation_237[0][0]             
__________________________________________________________________________________________________
block17_16_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_16_mixed[0][0]           
__________________________________________________________________________________________________
block17_16 (Lambda)             (None, 30, 30, 1088) 0           block17_15_ac[0][0]              
                                                                 block17_16_conv[0][0]            
__________________________________________________________________________________________________
block17_16_ac (Activation)      (None, 30, 30, 1088) 0           block17_16[0][0]                 
__________________________________________________________________________________________________
conv2d_270 (Conv2D)             (None, 30, 30, 128)  139264      block17_16_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_239 (BatchN (None, 30, 30, 128)  384         conv2d_270[0][0]                 
__________________________________________________________________________________________________
activation_239 (Activation)     (None, 30, 30, 128)  0           batch_normalization_239[0][0]    
__________________________________________________________________________________________________
conv2d_271 (Conv2D)             (None, 30, 30, 160)  143360      activation_239[0][0]             
__________________________________________________________________________________________________
batch_normalization_240 (BatchN (None, 30, 30, 160)  480         conv2d_271[0][0]                 
__________________________________________________________________________________________________
activation_240 (Activation)     (None, 30, 30, 160)  0           batch_normalization_240[0][0]    
__________________________________________________________________________________________________
conv2d_269 (Conv2D)             (None, 30, 30, 192)  208896      block17_16_ac[0][0]              
__________________________________________________________________________________________________
conv2d_272 (Conv2D)             (None, 30, 30, 192)  215040      activation_240[0][0]             
__________________________________________________________________________________________________
batch_normalization_238 (BatchN (None, 30, 30, 192)  576         conv2d_269[0][0]                 
__________________________________________________________________________________________________
batch_normalization_241 (BatchN (None, 30, 30, 192)  576         conv2d_272[0][0]                 
__________________________________________________________________________________________________
activation_238 (Activation)     (None, 30, 30, 192)  0           batch_normalization_238[0][0]    
__________________________________________________________________________________________________
activation_241 (Activation)     (None, 30, 30, 192)  0           batch_normalization_241[0][0]    
__________________________________________________________________________________________________
block17_17_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_238[0][0]             
                                                                 activation_241[0][0]             
__________________________________________________________________________________________________
block17_17_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_17_mixed[0][0]           
__________________________________________________________________________________________________
block17_17 (Lambda)             (None, 30, 30, 1088) 0           block17_16_ac[0][0]              
                                                                 block17_17_conv[0][0]            
__________________________________________________________________________________________________
block17_17_ac (Activation)      (None, 30, 30, 1088) 0           block17_17[0][0]                 
__________________________________________________________________________________________________
conv2d_274 (Conv2D)             (None, 30, 30, 128)  139264      block17_17_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_243 (BatchN (None, 30, 30, 128)  384         conv2d_274[0][0]                 
__________________________________________________________________________________________________
activation_243 (Activation)     (None, 30, 30, 128)  0           batch_normalization_243[0][0]    
__________________________________________________________________________________________________
conv2d_275 (Conv2D)             (None, 30, 30, 160)  143360      activation_243[0][0]             
__________________________________________________________________________________________________
batch_normalization_244 (BatchN (None, 30, 30, 160)  480         conv2d_275[0][0]                 
__________________________________________________________________________________________________
activation_244 (Activation)     (None, 30, 30, 160)  0           batch_normalization_244[0][0]    
__________________________________________________________________________________________________
conv2d_273 (Conv2D)             (None, 30, 30, 192)  208896      block17_17_ac[0][0]              
__________________________________________________________________________________________________
conv2d_276 (Conv2D)             (None, 30, 30, 192)  215040      activation_244[0][0]             
__________________________________________________________________________________________________
batch_normalization_242 (BatchN (None, 30, 30, 192)  576         conv2d_273[0][0]                 
__________________________________________________________________________________________________
batch_normalization_245 (BatchN (None, 30, 30, 192)  576         conv2d_276[0][0]                 
__________________________________________________________________________________________________
activation_242 (Activation)     (None, 30, 30, 192)  0           batch_normalization_242[0][0]    
__________________________________________________________________________________________________
activation_245 (Activation)     (None, 30, 30, 192)  0           batch_normalization_245[0][0]    
__________________________________________________________________________________________________
block17_18_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_242[0][0]             
                                                                 activation_245[0][0]             
__________________________________________________________________________________________________
block17_18_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_18_mixed[0][0]           
__________________________________________________________________________________________________
block17_18 (Lambda)             (None, 30, 30, 1088) 0           block17_17_ac[0][0]              
                                                                 block17_18_conv[0][0]            
__________________________________________________________________________________________________
block17_18_ac (Activation)      (None, 30, 30, 1088) 0           block17_18[0][0]                 
__________________________________________________________________________________________________
conv2d_278 (Conv2D)             (None, 30, 30, 128)  139264      block17_18_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_247 (BatchN (None, 30, 30, 128)  384         conv2d_278[0][0]                 
__________________________________________________________________________________________________
activation_247 (Activation)     (None, 30, 30, 128)  0           batch_normalization_247[0][0]    
__________________________________________________________________________________________________
conv2d_279 (Conv2D)             (None, 30, 30, 160)  143360      activation_247[0][0]             
__________________________________________________________________________________________________
batch_normalization_248 (BatchN (None, 30, 30, 160)  480         conv2d_279[0][0]                 
__________________________________________________________________________________________________
activation_248 (Activation)     (None, 30, 30, 160)  0           batch_normalization_248[0][0]    
__________________________________________________________________________________________________
conv2d_277 (Conv2D)             (None, 30, 30, 192)  208896      block17_18_ac[0][0]              
__________________________________________________________________________________________________
conv2d_280 (Conv2D)             (None, 30, 30, 192)  215040      activation_248[0][0]             
__________________________________________________________________________________________________
batch_normalization_246 (BatchN (None, 30, 30, 192)  576         conv2d_277[0][0]                 
__________________________________________________________________________________________________
batch_normalization_249 (BatchN (None, 30, 30, 192)  576         conv2d_280[0][0]                 
__________________________________________________________________________________________________
activation_246 (Activation)     (None, 30, 30, 192)  0           batch_normalization_246[0][0]    
__________________________________________________________________________________________________
activation_249 (Activation)     (None, 30, 30, 192)  0           batch_normalization_249[0][0]    
__________________________________________________________________________________________________
block17_19_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_246[0][0]             
                                                                 activation_249[0][0]             
__________________________________________________________________________________________________
block17_19_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_19_mixed[0][0]           
__________________________________________________________________________________________________
block17_19 (Lambda)             (None, 30, 30, 1088) 0           block17_18_ac[0][0]              
                                                                 block17_19_conv[0][0]            
__________________________________________________________________________________________________
block17_19_ac (Activation)      (None, 30, 30, 1088) 0           block17_19[0][0]                 
__________________________________________________________________________________________________
conv2d_282 (Conv2D)             (None, 30, 30, 128)  139264      block17_19_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_251 (BatchN (None, 30, 30, 128)  384         conv2d_282[0][0]                 
__________________________________________________________________________________________________
activation_251 (Activation)     (None, 30, 30, 128)  0           batch_normalization_251[0][0]    
__________________________________________________________________________________________________
conv2d_283 (Conv2D)             (None, 30, 30, 160)  143360      activation_251[0][0]             
__________________________________________________________________________________________________
batch_normalization_252 (BatchN (None, 30, 30, 160)  480         conv2d_283[0][0]                 
__________________________________________________________________________________________________
activation_252 (Activation)     (None, 30, 30, 160)  0           batch_normalization_252[0][0]    
__________________________________________________________________________________________________
conv2d_281 (Conv2D)             (None, 30, 30, 192)  208896      block17_19_ac[0][0]              
__________________________________________________________________________________________________
conv2d_284 (Conv2D)             (None, 30, 30, 192)  215040      activation_252[0][0]             
__________________________________________________________________________________________________
batch_normalization_250 (BatchN (None, 30, 30, 192)  576         conv2d_281[0][0]                 
__________________________________________________________________________________________________
batch_normalization_253 (BatchN (None, 30, 30, 192)  576         conv2d_284[0][0]                 
__________________________________________________________________________________________________
activation_250 (Activation)     (None, 30, 30, 192)  0           batch_normalization_250[0][0]    
__________________________________________________________________________________________________
activation_253 (Activation)     (None, 30, 30, 192)  0           batch_normalization_253[0][0]    
__________________________________________________________________________________________________
block17_20_mixed (Concatenate)  (None, 30, 30, 384)  0           activation_250[0][0]             
                                                                 activation_253[0][0]             
__________________________________________________________________________________________________
block17_20_conv (Conv2D)        (None, 30, 30, 1088) 418880      block17_20_mixed[0][0]           
__________________________________________________________________________________________________
block17_20 (Lambda)             (None, 30, 30, 1088) 0           block17_19_ac[0][0]              
                                                                 block17_20_conv[0][0]            
__________________________________________________________________________________________________
block17_20_ac (Activation)      (None, 30, 30, 1088) 0           block17_20[0][0]                 
__________________________________________________________________________________________________
conv2d_289 (Conv2D)             (None, 30, 30, 256)  278528      block17_20_ac[0][0]              
__________________________________________________________________________________________________
batch_normalization_258 (BatchN (None, 30, 30, 256)  768         conv2d_289[0][0]                 
__________________________________________________________________________________________________
activation_258 (Activation)     (None, 30, 30, 256)  0           batch_normalization_258[0][0]    
__________________________________________________________________________________________________
conv2d_285 (Conv2D)             (None, 30, 30, 256)  278528      block17_20_ac[0][0]              
__________________________________________________________________________________________________
conv2d_287 (Conv2D)             (None, 30, 30, 256)  278528      block17_20_ac[0][0]              
__________________________________________________________________________________________________
conv2d_290 (Conv2D)             (None, 30, 30, 288)  663552      activation_258[0][0]             
__________________________________________________________________________________________________
batch_normalization_254 (BatchN (None, 30, 30, 256)  768         conv2d_285[0][0]                 
__________________________________________________________________________________________________
batch_normalization_256 (BatchN (None, 30, 30, 256)  768         conv2d_287[0][0]                 
__________________________________________________________________________________________________
batch_normalization_259 (BatchN (None, 30, 30, 288)  864         conv2d_290[0][0]                 
__________________________________________________________________________________________________
activation_254 (Activation)     (None, 30, 30, 256)  0           batch_normalization_254[0][0]    
__________________________________________________________________________________________________
activation_256 (Activation)     (None, 30, 30, 256)  0           batch_normalization_256[0][0]    
__________________________________________________________________________________________________
activation_259 (Activation)     (None, 30, 30, 288)  0           batch_normalization_259[0][0]    
__________________________________________________________________________________________________
conv2d_286 (Conv2D)             (None, 14, 14, 384)  884736      activation_254[0][0]             
__________________________________________________________________________________________________
conv2d_288 (Conv2D)             (None, 14, 14, 288)  663552      activation_256[0][0]             
__________________________________________________________________________________________________
conv2d_291 (Conv2D)             (None, 14, 14, 320)  829440      activation_259[0][0]             
__________________________________________________________________________________________________
batch_normalization_255 (BatchN (None, 14, 14, 384)  1152        conv2d_286[0][0]                 
__________________________________________________________________________________________________
batch_normalization_257 (BatchN (None, 14, 14, 288)  864         conv2d_288[0][0]                 
__________________________________________________________________________________________________
batch_normalization_260 (BatchN (None, 14, 14, 320)  960         conv2d_291[0][0]                 
__________________________________________________________________________________________________
activation_255 (Activation)     (None, 14, 14, 384)  0           batch_normalization_255[0][0]    
__________________________________________________________________________________________________
activation_257 (Activation)     (None, 14, 14, 288)  0           batch_normalization_257[0][0]    
__________________________________________________________________________________________________
activation_260 (Activation)     (None, 14, 14, 320)  0           batch_normalization_260[0][0]    
__________________________________________________________________________________________________
max_pooling2d_17 (MaxPooling2D) (None, 14, 14, 1088) 0           block17_20_ac[0][0]              
__________________________________________________________________________________________________
mixed_7a (Concatenate)          (None, 14, 14, 2080) 0           activation_255[0][0]             
                                                                 activation_257[0][0]             
                                                                 activation_260[0][0]             
                                                                 max_pooling2d_17[0][0]           
__________________________________________________________________________________________________
conv2d_293 (Conv2D)             (None, 14, 14, 192)  399360      mixed_7a[0][0]                   
__________________________________________________________________________________________________
batch_normalization_262 (BatchN (None, 14, 14, 192)  576         conv2d_293[0][0]                 
__________________________________________________________________________________________________
activation_262 (Activation)     (None, 14, 14, 192)  0           batch_normalization_262[0][0]    
__________________________________________________________________________________________________
conv2d_294 (Conv2D)             (None, 14, 14, 224)  129024      activation_262[0][0]             
__________________________________________________________________________________________________
batch_normalization_263 (BatchN (None, 14, 14, 224)  672         conv2d_294[0][0]                 
__________________________________________________________________________________________________
activation_263 (Activation)     (None, 14, 14, 224)  0           batch_normalization_263[0][0]    
__________________________________________________________________________________________________
conv2d_292 (Conv2D)             (None, 14, 14, 192)  399360      mixed_7a[0][0]                   
__________________________________________________________________________________________________
conv2d_295 (Conv2D)             (None, 14, 14, 256)  172032      activation_263[0][0]             
__________________________________________________________________________________________________
batch_normalization_261 (BatchN (None, 14, 14, 192)  576         conv2d_292[0][0]                 
__________________________________________________________________________________________________
batch_normalization_264 (BatchN (None, 14, 14, 256)  768         conv2d_295[0][0]                 
__________________________________________________________________________________________________
activation_261 (Activation)     (None, 14, 14, 192)  0           batch_normalization_261[0][0]    
__________________________________________________________________________________________________
activation_264 (Activation)     (None, 14, 14, 256)  0           batch_normalization_264[0][0]    
__________________________________________________________________________________________________
block8_1_mixed (Concatenate)    (None, 14, 14, 448)  0           activation_261[0][0]             
                                                                 activation_264[0][0]             
__________________________________________________________________________________________________
block8_1_conv (Conv2D)          (None, 14, 14, 2080) 933920      block8_1_mixed[0][0]             
__________________________________________________________________________________________________
block8_1 (Lambda)               (None, 14, 14, 2080) 0           mixed_7a[0][0]                   
                                                                 block8_1_conv[0][0]              
__________________________________________________________________________________________________
block8_1_ac (Activation)        (None, 14, 14, 2080) 0           block8_1[0][0]                   
__________________________________________________________________________________________________
conv2d_297 (Conv2D)             (None, 14, 14, 192)  399360      block8_1_ac[0][0]                
__________________________________________________________________________________________________
batch_normalization_266 (BatchN (None, 14, 14, 192)  576         conv2d_297[0][0]                 
__________________________________________________________________________________________________
activation_266 (Activation)     (None, 14, 14, 192)  0           batch_normalization_266[0][0]    
__________________________________________________________________________________________________
conv2d_298 (Conv2D)             (None, 14, 14, 224)  129024      activation_266[0][0]             
__________________________________________________________________________________________________
batch_normalization_267 (BatchN (None, 14, 14, 224)  672         conv2d_298[0][0]                 
__________________________________________________________________________________________________
activation_267 (Activation)     (None, 14, 14, 224)  0           batch_normalization_267[0][0]    
__________________________________________________________________________________________________
conv2d_296 (Conv2D)             (None, 14, 14, 192)  399360      block8_1_ac[0][0]                
__________________________________________________________________________________________________
conv2d_299 (Conv2D)             (None, 14, 14, 256)  172032      activation_267[0][0]             
__________________________________________________________________________________________________
batch_normalization_265 (BatchN (None, 14, 14, 192)  576         conv2d_296[0][0]                 
__________________________________________________________________________________________________
batch_normalization_268 (BatchN (None, 14, 14, 256)  768         conv2d_299[0][0]                 
__________________________________________________________________________________________________
activation_265 (Activation)     (None, 14, 14, 192)  0           batch_normalization_265[0][0]    
__________________________________________________________________________________________________
activation_268 (Activation)     (None, 14, 14, 256)  0           batch_normalization_268[0][0]    
__________________________________________________________________________________________________
block8_2_mixed (Concatenate)    (None, 14, 14, 448)  0           activation_265[0][0]             
                                                                 activation_268[0][0]             
__________________________________________________________________________________________________
block8_2_conv (Conv2D)          (None, 14, 14, 2080) 933920      block8_2_mixed[0][0]             
__________________________________________________________________________________________________
block8_2 (Lambda)               (None, 14, 14, 2080) 0           block8_1_ac[0][0]                
                                                                 block8_2_conv[0][0]              
__________________________________________________________________________________________________
block8_2_ac (Activation)        (None, 14, 14, 2080) 0           block8_2[0][0]                   
__________________________________________________________________________________________________
conv2d_301 (Conv2D)             (None, 14, 14, 192)  399360      block8_2_ac[0][0]                
__________________________________________________________________________________________________
batch_normalization_270 (BatchN (None, 14, 14, 192)  576         conv2d_301[0][0]                 
__________________________________________________________________________________________________
activation_270 (Activation)     (None, 14, 14, 192)  0           batch_normalization_270[0][0]    
__________________________________________________________________________________________________
conv2d_302 (Conv2D)             (None, 14, 14, 224)  129024      activation_270[0][0]             
__________________________________________________________________________________________________
batch_normalization_271 (BatchN (None, 14, 14, 224)  672         conv2d_302[0][0]                 
__________________________________________________________________________________________________
activation_271 (Activation)     (None, 14, 14, 224)  0           batch_normalization_271[0][0]    
__________________________________________________________________________________________________
conv2d_300 (Conv2D)             (None, 14, 14, 192)  399360      block8_2_ac[0][0]                
__________________________________________________________________________________________________
conv2d_303 (Conv2D)             (None, 14, 14, 256)  172032      activation_271[0][0]             
__________________________________________________________________________________________________
batch_normalization_269 (BatchN (None, 14, 14, 192)  576         conv2d_300[0][0]                 
__________________________________________________________________________________________________
batch_normalization_272 (BatchN (None, 14, 14, 256)  768         conv2d_303[0][0]                 
__________________________________________________________________________________________________
activation_269 (Activation)     (None, 14, 14, 192)  0           batch_normalization_269[0][0]    
__________________________________________________________________________________________________
activation_272 (Activation)     (None, 14, 14, 256)  0           batch_normalization_272[0][0]    
__________________________________________________________________________________________________
block8_3_mixed (Concatenate)    (None, 14, 14, 448)  0           activation_269[0][0]             
                                                                 activation_272[0][0]             
__________________________________________________________________________________________________
block8_3_conv (Conv2D)          (None, 14, 14, 2080) 933920      block8_3_mixed[0][0]             
__________________________________________________________________________________________________
block8_3 (Lambda)               (None, 14, 14, 2080) 0           block8_2_ac[0][0]                
                                                                 block8_3_conv[0][0]              
__________________________________________________________________________________________________
block8_3_ac (Activation)        (None, 14, 14, 2080) 0           block8_3[0][0]                   
__________________________________________________________________________________________________
conv2d_305 (Conv2D)             (None, 14, 14, 192)  399360      block8_3_ac[0][0]                
__________________________________________________________________________________________________
batch_normalization_274 (BatchN (None, 14, 14, 192)  576         conv2d_305[0][0]                 
__________________________________________________________________________________________________
activation_274 (Activation)     (None, 14, 14, 192)  0           batch_normalization_274[0][0]    
__________________________________________________________________________________________________
conv2d_306 (Conv2D)             (None, 14, 14, 224)  129024      activation_274[0][0]             
__________________________________________________________________________________________________
batch_normalization_275 (BatchN (None, 14, 14, 224)  672         conv2d_306[0][0]                 
__________________________________________________________________________________________________
activation_275 (Activation)     (None, 14, 14, 224)  0           batch_normalization_275[0][0]    
__________________________________________________________________________________________________
conv2d_304 (Conv2D)             (None, 14, 14, 192)  399360      block8_3_ac[0][0]                
__________________________________________________________________________________________________
conv2d_307 (Conv2D)             (None, 14, 14, 256)  172032      activation_275[0][0]             
__________________________________________________________________________________________________
batch_normalization_273 (BatchN (None, 14, 14, 192)  576         conv2d_304[0][0]                 
__________________________________________________________________________________________________
batch_normalization_276 (BatchN (None, 14, 14, 256)  768         conv2d_307[0][0]                 
__________________________________________________________________________________________________
activation_273 (Activation)     (None, 14, 14, 192)  0           batch_normalization_273[0][0]    
__________________________________________________________________________________________________
activation_276 (Activation)     (None, 14, 14, 256)  0           batch_normalization_276[0][0]    
__________________________________________________________________________________________________
block8_4_mixed (Concatenate)    (None, 14, 14, 448)  0           activation_273[0][0]             
                                                                 activation_276[0][0]             
__________________________________________________________________________________________________
block8_4_conv (Conv2D)          (None, 14, 14, 2080) 933920      block8_4_mixed[0][0]             
__________________________________________________________________________________________________
block8_4 (Lambda)               (None, 14, 14, 2080) 0           block8_3_ac[0][0]                
                                                                 block8_4_conv[0][0]              
__________________________________________________________________________________________________
block8_4_ac (Activation)        (None, 14, 14, 2080) 0           block8_4[0][0]                   
__________________________________________________________________________________________________
conv2d_309 (Conv2D)             (None, 14, 14, 192)  399360      block8_4_ac[0][0]                
__________________________________________________________________________________________________
batch_normalization_278 (BatchN (None, 14, 14, 192)  576         conv2d_309[0][0]                 
__________________________________________________________________________________________________
activation_278 (Activation)     (None, 14, 14, 192)  0           batch_normalization_278[0][0]    
__________________________________________________________________________________________________
conv2d_310 (Conv2D)             (None, 14, 14, 224)  129024      activation_278[0][0]             
__________________________________________________________________________________________________
batch_normalization_279 (BatchN (None, 14, 14, 224)  672         conv2d_310[0][0]                 
__________________________________________________________________________________________________
activation_279 (Activation)     (None, 14, 14, 224)  0           batch_normalization_279[0][0]    
__________________________________________________________________________________________________
conv2d_308 (Conv2D)             (None, 14, 14, 192)  399360      block8_4_ac[0][0]                
__________________________________________________________________________________________________
conv2d_311 (Conv2D)             (None, 14, 14, 256)  172032      activation_279[0][0]             
__________________________________________________________________________________________________
batch_normalization_277 (BatchN (None, 14, 14, 192)  576         conv2d_308[0][0]                 
__________________________________________________________________________________________________
batch_normalization_280 (BatchN (None, 14, 14, 256)  768         conv2d_311[0][0]                 
__________________________________________________________________________________________________
activation_277 (Activation)     (None, 14, 14, 192)  0           batch_normalization_277[0][0]    
__________________________________________________________________________________________________
activation_280 (Activation)     (None, 14, 14, 256)  0           batch_normalization_280[0][0]    
__________________________________________________________________________________________________
block8_5_mixed (Concatenate)    (None, 14, 14, 448)  0           activation_277[0][0]             
                                                                 activation_280[0][0]             
__________________________________________________________________________________________________
block8_5_conv (Conv2D)          (None, 14, 14, 2080) 933920      block8_5_mixed[0][0]             
__________________________________________________________________________________________________
block8_5 (Lambda)               (None, 14, 14, 2080) 0           block8_4_ac[0][0]                
                                                                 block8_5_conv[0][0]              
__________________________________________________________________________________________________
block8_5_ac (Activation)        (None, 14, 14, 2080) 0           block8_5[0][0]                   
__________________________________________________________________________________________________
conv2d_313 (Conv2D)             (None, 14, 14, 192)  399360      block8_5_ac[0][0]                
__________________________________________________________________________________________________
batch_normalization_282 (BatchN (None, 14, 14, 192)  576         conv2d_313[0][0]                 
__________________________________________________________________________________________________
activation_282 (Activation)     (None, 14, 14, 192)  0           batch_normalization_282[0][0]    
__________________________________________________________________________________________________
conv2d_314 (Conv2D)             (None, 14, 14, 224)  129024      activation_282[0][0]             
__________________________________________________________________________________________________
batch_normalization_283 (BatchN (None, 14, 14, 224)  672         conv2d_314[0][0]                 
__________________________________________________________________________________________________
activation_283 (Activation)     (None, 14, 14, 224)  0           batch_normalization_283[0][0]    
__________________________________________________________________________________________________
conv2d_312 (Conv2D)             (None, 14, 14, 192)  399360      block8_5_ac[0][0]                
__________________________________________________________________________________________________
conv2d_315 (Conv2D)             (None, 14, 14, 256)  172032      activation_283[0][0]             
__________________________________________________________________________________________________
batch_normalization_281 (BatchN (None, 14, 14, 192)  576         conv2d_312[0][0]                 
__________________________________________________________________________________________________
batch_normalization_284 (BatchN (None, 14, 14, 256)  768         conv2d_315[0][0]                 
__________________________________________________________________________________________________
activation_281 (Activation)     (None, 14, 14, 192)  0           batch_normalization_281[0][0]    
__________________________________________________________________________________________________
activation_284 (Activation)     (None, 14, 14, 256)  0           batch_normalization_284[0][0]    
__________________________________________________________________________________________________
block8_6_mixed (Concatenate)    (None, 14, 14, 448)  0           activation_281[0][0]             
                                                                 activation_284[0][0]             
__________________________________________________________________________________________________
block8_6_conv (Conv2D)          (None, 14, 14, 2080) 933920      block8_6_mixed[0][0]             
__________________________________________________________________________________________________
block8_6 (Lambda)               (None, 14, 14, 2080) 0           block8_5_ac[0][0]                
                                                                 block8_6_conv[0][0]              
__________________________________________________________________________________________________
block8_6_ac (Activation)        (None, 14, 14, 2080) 0           block8_6[0][0]                   
__________________________________________________________________________________________________
conv2d_317 (Conv2D)             (None, 14, 14, 192)  399360      block8_6_ac[0][0]                
__________________________________________________________________________________________________
batch_normalization_286 (BatchN (None, 14, 14, 192)  576         conv2d_317[0][0]                 
__________________________________________________________________________________________________
activation_286 (Activation)     (None, 14, 14, 192)  0           batch_normalization_286[0][0]    
__________________________________________________________________________________________________
conv2d_318 (Conv2D)             (None, 14, 14, 224)  129024      activation_286[0][0]             
__________________________________________________________________________________________________
batch_normalization_287 (BatchN (None, 14, 14, 224)  672         conv2d_318[0][0]                 
__________________________________________________________________________________________________
activation_287 (Activation)     (None, 14, 14, 224)  0           batch_normalization_287[0][0]    
__________________________________________________________________________________________________
conv2d_316 (Conv2D)             (None, 14, 14, 192)  399360      block8_6_ac[0][0]                
__________________________________________________________________________________________________
conv2d_319 (Conv2D)             (None, 14, 14, 256)  172032      activation_287[0][0]             
__________________________________________________________________________________________________
batch_normalization_285 (BatchN (None, 14, 14, 192)  576         conv2d_316[0][0]                 
__________________________________________________________________________________________________
batch_normalization_288 (BatchN (None, 14, 14, 256)  768         conv2d_319[0][0]                 
__________________________________________________________________________________________________
activation_285 (Activation)     (None, 14, 14, 192)  0           batch_normalization_285[0][0]    
__________________________________________________________________________________________________
activation_288 (Activation)     (None, 14, 14, 256)  0           batch_normalization_288[0][0]    
__________________________________________________________________________________________________
block8_7_mixed (Concatenate)    (None, 14, 14, 448)  0           activation_285[0][0]             
                                                                 activation_288[0][0]             
__________________________________________________________________________________________________
block8_7_conv (Conv2D)          (None, 14, 14, 2080) 933920      block8_7_mixed[0][0]             
__________________________________________________________________________________________________
block8_7 (Lambda)               (None, 14, 14, 2080) 0           block8_6_ac[0][0]                
                                                                 block8_7_conv[0][0]              
__________________________________________________________________________________________________
block8_7_ac (Activation)        (None, 14, 14, 2080) 0           block8_7[0][0]                   
__________________________________________________________________________________________________
conv2d_321 (Conv2D)             (None, 14, 14, 192)  399360      block8_7_ac[0][0]                
__________________________________________________________________________________________________
batch_normalization_290 (BatchN (None, 14, 14, 192)  576         conv2d_321[0][0]                 
__________________________________________________________________________________________________
activation_290 (Activation)     (None, 14, 14, 192)  0           batch_normalization_290[0][0]    
__________________________________________________________________________________________________
conv2d_322 (Conv2D)             (None, 14, 14, 224)  129024      activation_290[0][0]             
__________________________________________________________________________________________________
batch_normalization_291 (BatchN (None, 14, 14, 224)  672         conv2d_322[0][0]                 
__________________________________________________________________________________________________
activation_291 (Activation)     (None, 14, 14, 224)  0           batch_normalization_291[0][0]    
__________________________________________________________________________________________________
conv2d_320 (Conv2D)             (None, 14, 14, 192)  399360      block8_7_ac[0][0]                
__________________________________________________________________________________________________
conv2d_323 (Conv2D)             (None, 14, 14, 256)  172032      activation_291[0][0]             
__________________________________________________________________________________________________
batch_normalization_289 (BatchN (None, 14, 14, 192)  576         conv2d_320[0][0]                 
__________________________________________________________________________________________________
batch_normalization_292 (BatchN (None, 14, 14, 256)  768         conv2d_323[0][0]                 
__________________________________________________________________________________________________
activation_289 (Activation)     (None, 14, 14, 192)  0           batch_normalization_289[0][0]    
__________________________________________________________________________________________________
activation_292 (Activation)     (None, 14, 14, 256)  0           batch_normalization_292[0][0]    
__________________________________________________________________________________________________
block8_8_mixed (Concatenate)    (None, 14, 14, 448)  0           activation_289[0][0]             
                                                                 activation_292[0][0]             
__________________________________________________________________________________________________
block8_8_conv (Conv2D)          (None, 14, 14, 2080) 933920      block8_8_mixed[0][0]             
__________________________________________________________________________________________________
block8_8 (Lambda)               (None, 14, 14, 2080) 0           block8_7_ac[0][0]                
                                                                 block8_8_conv[0][0]              
__________________________________________________________________________________________________
block8_8_ac (Activation)        (None, 14, 14, 2080) 0           block8_8[0][0]                   
__________________________________________________________________________________________________
conv2d_325 (Conv2D)             (None, 14, 14, 192)  399360      block8_8_ac[0][0]                
__________________________________________________________________________________________________
batch_normalization_294 (BatchN (None, 14, 14, 192)  576         conv2d_325[0][0]                 
__________________________________________________________________________________________________
activation_294 (Activation)     (None, 14, 14, 192)  0           batch_normalization_294[0][0]    
__________________________________________________________________________________________________
conv2d_326 (Conv2D)             (None, 14, 14, 224)  129024      activation_294[0][0]             
__________________________________________________________________________________________________
batch_normalization_295 (BatchN (None, 14, 14, 224)  672         conv2d_326[0][0]                 
__________________________________________________________________________________________________
activation_295 (Activation)     (None, 14, 14, 224)  0           batch_normalization_295[0][0]    
__________________________________________________________________________________________________
conv2d_324 (Conv2D)             (None, 14, 14, 192)  399360      block8_8_ac[0][0]                
__________________________________________________________________________________________________
conv2d_327 (Conv2D)             (None, 14, 14, 256)  172032      activation_295[0][0]             
__________________________________________________________________________________________________
batch_normalization_293 (BatchN (None, 14, 14, 192)  576         conv2d_324[0][0]                 
__________________________________________________________________________________________________
batch_normalization_296 (BatchN (None, 14, 14, 256)  768         conv2d_327[0][0]                 
__________________________________________________________________________________________________
activation_293 (Activation)     (None, 14, 14, 192)  0           batch_normalization_293[0][0]    
__________________________________________________________________________________________________
activation_296 (Activation)     (None, 14, 14, 256)  0           batch_normalization_296[0][0]    
__________________________________________________________________________________________________
block8_9_mixed (Concatenate)    (None, 14, 14, 448)  0           activation_293[0][0]             
                                                                 activation_296[0][0]             
__________________________________________________________________________________________________
block8_9_conv (Conv2D)          (None, 14, 14, 2080) 933920      block8_9_mixed[0][0]             
__________________________________________________________________________________________________
block8_9 (Lambda)               (None, 14, 14, 2080) 0           block8_8_ac[0][0]                
                                                                 block8_9_conv[0][0]              
__________________________________________________________________________________________________
block8_9_ac (Activation)        (None, 14, 14, 2080) 0           block8_9[0][0]                   
__________________________________________________________________________________________________
conv2d_329 (Conv2D)             (None, 14, 14, 192)  399360      block8_9_ac[0][0]                
__________________________________________________________________________________________________
batch_normalization_298 (BatchN (None, 14, 14, 192)  576         conv2d_329[0][0]                 
__________________________________________________________________________________________________
activation_298 (Activation)     (None, 14, 14, 192)  0           batch_normalization_298[0][0]    
__________________________________________________________________________________________________
conv2d_330 (Conv2D)             (None, 14, 14, 224)  129024      activation_298[0][0]             
__________________________________________________________________________________________________
batch_normalization_299 (BatchN (None, 14, 14, 224)  672         conv2d_330[0][0]                 
__________________________________________________________________________________________________
activation_299 (Activation)     (None, 14, 14, 224)  0           batch_normalization_299[0][0]    
__________________________________________________________________________________________________
conv2d_328 (Conv2D)             (None, 14, 14, 192)  399360      block8_9_ac[0][0]                
__________________________________________________________________________________________________
conv2d_331 (Conv2D)             (None, 14, 14, 256)  172032      activation_299[0][0]             
__________________________________________________________________________________________________
batch_normalization_297 (BatchN (None, 14, 14, 192)  576         conv2d_328[0][0]                 
__________________________________________________________________________________________________
batch_normalization_300 (BatchN (None, 14, 14, 256)  768         conv2d_331[0][0]                 
__________________________________________________________________________________________________
activation_297 (Activation)     (None, 14, 14, 192)  0           batch_normalization_297[0][0]    
__________________________________________________________________________________________________
activation_300 (Activation)     (None, 14, 14, 256)  0           batch_normalization_300[0][0]    
__________________________________________________________________________________________________
block8_10_mixed (Concatenate)   (None, 14, 14, 448)  0           activation_297[0][0]             
                                                                 activation_300[0][0]             
__________________________________________________________________________________________________
block8_10_conv (Conv2D)         (None, 14, 14, 2080) 933920      block8_10_mixed[0][0]            
__________________________________________________________________________________________________
block8_10 (Lambda)              (None, 14, 14, 2080) 0           block8_9_ac[0][0]                
                                                                 block8_10_conv[0][0]             
__________________________________________________________________________________________________
conv_7b (Conv2D)                (None, 14, 14, 1536) 3194880     block8_10[0][0]                  
__________________________________________________________________________________________________
conv_7b_bn (BatchNormalization) (None, 14, 14, 1536) 4608        conv_7b[0][0]                    
__________________________________________________________________________________________________
conv_7b_ac (Activation)         (None, 14, 14, 1536) 0           conv_7b_bn[0][0]                 
__________________________________________________________________________________________________
global_average_pooling2d_3 (Glo (None, 1536)         0           conv_7b_ac[0][0]                 
__________________________________________________________________________________________________
dense_12 (Dense)                (None, 516)          793092      global_average_pooling2d_3[0][0] 
__________________________________________________________________________________________________
dropout_6 (Dropout)             (None, 516)          0           dense_12[0][0]                   
__________________________________________________________________________________________________
dense_13 (Dense)                (None, 256)          132352      dropout_6[0][0]                  
__________________________________________________________________________________________________
dropout_7 (Dropout)             (None, 256)          0           dense_13[0][0]                   
__________________________________________________________________________________________________
dense_14 (Dense)                (None, 64)           16448       dropout_7[0][0]                  
__________________________________________________________________________________________________
dense_15 (Dense)                (None, 3)            195         dense_14[0][0]                   
==================================================================================================
Total params: 55,278,823
Trainable params: 13,383,143
Non-trainable params: 41,895,680
__________________________________________________________________________________________________
None
In [64]:
# Define modifier to replace the sigmoid function of the last layer to a linear function
def model_modifier(m):
    m.layers[-1].activation = tf.keras.activations.linear

# Define losses functions. 0 is the index for a normal MRI
loss_normal = lambda output: K.mean(output[:, 0])

# Define losses functions. 1 is the index for a diffuse malformation of cortical development MRI
loss_diffuseMCD = lambda output: K.mean(output[:, 1])

# Define losses functions. 2 is the index for a PVNH MRI
loss_PVNH = lambda output: K.mean(output[:, 2])
    
# Create Gradcam object
gradcam = Gradcam(model, model_modifier)

# Create Saliency object
saliency = Saliency(model, model_modifier)

# Iterate through the MRIs in test set

# Set background to white color
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='white'
plt.rcParams['figure.edgecolor']='white'


print('\n \n' + '\033[1m' + 'EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)' + '\033[0m' + '\n')
print('\033[1m' + 'EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION, OR PERIVENTRICULAR NODULAR HETEROTOPIA) \n \nHIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI' + '\033[0m'+ '\n')


for i in range(20):
    
    # Print spaces to separate from the next image
    print('\n \n \n \n \n \n')
  
    # Print real classification of the image
    if y_true[i]==0:
        real_classification='Normal MRI'
    elif y_true[i]==1:
        real_classification='Diffuse MCD'
    else:
        real_classification='PVNH'
        
    print('\033[1m' + 'REAL CLASSIFICATION OF THE IMAGE: {}'.format(real_classification) + '\033[0m')
   
    # Print model classification and model probability of MCD
    if y_predInceptionResNetV2[i]==0:
        predicted_classification='Normal MRI'
    elif y_predInceptionResNetV2[i]==1:
        predicted_classification='Diffuse MCD'
    else:
        predicted_classification='PVNH'   
    
    print('\033[1m' + 'MODEL CLASSIFICATION OF THE IMAGE: {}'.format(predicted_classification)  + '\033[0m \n') 
    print('\033[1m' + '   Prob. Normal MRI: {:.4f}    '.format(valInceptionResNetV2[i][0]) + 'Prob. Diffuse MCD: {:.4f}     '.format(valInceptionResNetV2[i][1]), 'Prob. PVNH: {:.4f}'.format(valInceptionResNetV2[i][2]) + '\033[0m')
  
    
    # Arrays to plot
    original_image=shuffled_val_X[i]
    list_heatmaps=[
        # GradCam heatmap for normal MRI
        normalize(gradcam(loss_normal, shuffled_val_X[i])),
        # GradCam heatmap for diffuse MCD
        normalize(gradcam(loss_diffuseMCD, shuffled_val_X[i])),
        # GradCam heatmap for PVNH
        normalize(gradcam(loss_PVNH, shuffled_val_X[i])),
        # Saliency heatmap for normal MRI
        normalize(saliency(loss_normal, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
        # Saliency heatmap for diffuse MCD
        normalize(saliency(loss_diffuseMCD, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
        # Saliency heatmap for PVNH
        normalize(saliency(loss_PVNH, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2))
    ]
    
    # Define figure
    f=plt.figure(figsize=(20, 8))

    # Define the image grid
    grid = ImageGrid(f, 111,
                nrows_ncols=(2, 3),
                axes_pad=0.05,
                share_all=True,
                cbar_location="right",
                cbar_mode=None,
                cbar_size="2%",
                cbar_pad=0.15)

    
    # Iterate over the graphs
    for j, axis in enumerate(grid):
        # Plot original 
        im=axis.imshow(original_image)
        im=axis.imshow(list_heatmaps[j][0], cmap='jet', alpha=0.5*valInceptionResNetV2[i][j%3])
        im=axis.set_xticks([])
        im=axis.set_yticks([])
    
    # Create scalarmappable for obtaining the colorbar from 0 to 1
    sm = plt.cm.ScalarMappable(cmap='jet', norm=plt.Normalize(vmin=0, vmax=1))
    plt.colorbar(sm)
    plt.show()
 
EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)

EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION, OR PERIVENTRICULAR NODULAR HETEROTOPIA) 
 
HIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI


 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0001    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.9999
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0135    Prob. Diffuse MCD: 0.0004      Prob. PVNH: 0.9862
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 0.9998    Prob. Diffuse MCD: 0.0001      Prob. PVNH: 0.0001
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 1.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 1.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0032    Prob. Diffuse MCD: 0.9915      Prob. PVNH: 0.0053
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Normal MRI 

   Prob. Normal MRI: 1.0000    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0001    Prob. Diffuse MCD: 0.0001      Prob. PVNH: 0.9998
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: PVNH
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0001    Prob. Diffuse MCD: 0.0000      Prob. PVNH: 0.9999
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0252    Prob. Diffuse MCD: 0.9408      Prob. PVNH: 0.0340
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0224    Prob. Diffuse MCD: 0.9766      Prob. PVNH: 0.0010
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: PVNH 

   Prob. Normal MRI: 0.0001    Prob. Diffuse MCD: 0.0095      Prob. PVNH: 0.9905
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 0.7767      Prob. PVNH: 0.2233
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Normal MRI
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.2934    Prob. Diffuse MCD: 0.6963      Prob. PVNH: 0.0102
 
 
 
 
 

REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD
MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD 

   Prob. Normal MRI: 0.0000    Prob. Diffuse MCD: 1.0000      Prob. PVNH: 0.0000